We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
close icon

Multiple Bugs after upgradint to V17.4.0.39

Hello Team!
I'm using VS Code with Blazor Server app,
I Upgrade my syncfusion version with all his dependency Version="17.4.0.39", 
In Startup.cs I add 
using Syncfusion.EJ2.Blazor;

public void ConfigureServices(IServiceCollection services)
{
services.AddSyncfusionBlazor();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("licencekey");
}

I also upgrade to Net Core SDK V3.1.0
I download the corresponding Licence (My company have a License), but when I want to load the page I Have this red banner

All the page where I Include <EjsSchedule> just plant and the output Error track bellow.



The project work well before update I was Using the ModelType="@Model" but i remove it according to the new requirements.
I join some segment of my code just to show the structure of my Scheduler.

Thanks,
Chimène NK.

Attachment: ScheduleCode_8fe30cf8.7z

7 Replies

HB Holger Braunschweig December 18, 2019 06:20 PM UTC

Same problem here but with the eval version and maps control.

Best regards
Holger


NR Nevitha Ravi Syncfusion Team December 19, 2019 12:32 PM UTC

Hi Nkouambia/Holger, 

Greetings from Syncfusion Support. 

Q: Licensing issue: 
Syncfusion licensing message will be displayed if your application is referred with Syncfusion Blazor component and Syncfusion.Licensing NuGet in v17.4.0.39. To resolve this reported licensing issue in Blazor application, please follow the steps suggested in the following KB article link.  
 
 
Refer the following documentation to register the license key in Blazor application.  
 
 
Refer the following documentation to know more about Syncfusion licensing.  
 
 
Q: Error in Scheduler: 

The cause for the reported issue might be field mapping is not proper for resources which results in the shared error trace. Kindly ensure whether you have used the same fields provided in the TValue of resource to the resource datasource.  

Due to our breaking changes, we have changed the template arguments for the templates in your code, please refer the following sample. 


        <ScheduleTemplates> 
            <DateHeaderTemplate> 
                <div class="date-text">@(GetDateHeaderText((context as TemplateContext).Date))</div> 
            </DateHeaderTemplate> 
        </ScheduleTemplates> 
… 
        <ScheduleTimeScale> 
            <MajorSlotTemplate> 
                @{ 
                    var currTime = MajorSlotTemplate((context as TemplateContext).Date); 
                    var nextTime = Convert.ToInt32(currTime) + 4; 
                    <div>@(currTime + "h-" + nextTime + "h")</div> 
                } 
            </MajorSlotTemplate> 
        </ScheduleTimeScale> 
… 
            <Template> 
                <div>@((context as AppointmentData).Subject)</div> 
<div>De: @((context as AppointmentData).StartTime.ToString("hh:mm")) A: @((context as AppointmentData).EndTime.ToString("hh:mm"))</div> 
            </Template> 

Currently we are having issue while using Interval and SlotCount within ScheduleTimeScale, so we have logged the bug report for the same which can be tracked from the following link. The fix will be included in our weekly patch release scheduled on the mid of January 2020. In the meantime we suggest you to use Interval and SlotCount within ScheduleViewTimeScale.  

Please refer the following code which will resolve the issue. 
    ….  
      <ScheduleTimeScale> 
            <MajorSlotTemplate> 
                @{ 
                    var currTime = MajorSlotTemplate((context as TemplateContext).Date); 
                    var nextTime = Convert.ToInt32(currTime) + 4; 
                    <div>@(currTime + "h-" + nextTime + "h")</div> 
                } 
            </MajorSlotTemplate> 
        </ScheduleTimeScale> 
        <ScheduleViews> 
            <ScheduleView Option="View.TimelineDay"> 
                <ScheduleViewTimeScale Interval="240" SlotCount="1"> 
                </ScheduleViewTimeScale> 
            </ScheduleView> 
            <ScheduleView Option="View.TimelineWeek" DateFormat="dd-MMM-yyyy" StartHour="08:00" EndHour="16:00"> 
                <ScheduleViewTimeScale Interval="240" SlotCount="1"> 
                </ScheduleViewTimeScale> 
            </ScheduleView> 
            <ScheduleView Option="View.TimelineMonth"></ScheduleView> 
            <ScheduleView Option="View.Agenda"></ScheduleView> 
        </ScheduleViews> 
….. 

Please get back to us if you have any further queries. 

Regards, 
Nevitha. 



NC NKOUAMBIA CHIMENE December 30, 2019 04:44 PM UTC

Hello Team, Happy Holidays to you all !

I have another issues with scheduler,

Before upgrading my syncfusion version this is how I was loading resources data and every thing was working well (calling services who call webApi and then repository)
@inject SallesExamenService _ssalle
@inject GrappesService _sgrappe

<----------------------------------->
<ScheduleGroup Resources="@resources" ></ScheduleGroup>
    <ScheduleResources>
        <ScheduleResource TValue="GrappeSalle" DataSource="@grappeSalleList" Field="IdGrappeSys" Title="Choose Project" Name="Grappes" TextField="NomGrappe" IdField="IdGrappeSys" ColorField="Color" AllowMultiple="false"></ScheduleResource>
        <ScheduleResource TValue="SalleExamenSys" DataSource="@sallesList" Field="IdSalleExamenSys" Title="Salle Examen" Name="SalleExamens" TextField="NomSalle" IdField="IdSalleExamenSys" GroupIDField="IdGrappeSys" AllowMultiple="true" ColorField="#cb6bb2"></ScheduleResource>
    </ScheduleResources>
<----------------------------------->

@code
{
     public List<GrappeSalle> grappeSalleList = new List<GrappeSalle>();
     public List<SalleExamenSys> sallesList = new List<SalleExamenSys>();
     public string[] resources { get; set; } = new string[] {"Grappes", "SalleExamens"};

protected override async Task OnInitializedAsync() {
      sallesList = await _ssalle.GetAllAsync();
      grappeSalleList = await _sgrappe.GetAllAsync();       
}

****but after upgrading to last version nothing work again. I was block for long time because I was not have any possibility to know where the joint message refer me, so i proceed by elimination, when I comment the block about ressources group the scheduler will show (normally without ressources) and also if i explicitly gave the values to sallesList/grappeSalleList like this for eg 
---------------------------------------------------------------------------------------------
public List<GrappeSalle> grappeSalleList = new List<GrappeSalle>() {
        new GrappeSalle { IdGrappeSys = 4, NomGrappe = "Grappe01", Color = "#ffaa00"},
        new GrappeSalle { IdGrappeSys = 6, NomGrappe = "Grappe02", Color = "#f8a398"},
};
private List<SalleExamenSys> sallesList { get; set; } = new List<SalleExamenSys>
{
        new SalleExamenSys { IdSalleExamenSys = 1, NomSalle = "Salle01", color = "#ffaa00", IdGrappeSys= 4},
        new SalleExamenSys { IdSalleExamenSys = 2, NomSalle = "Salle02", color = "#f8a398", IdGrappeSys = 4},
        new  SalleExamenSys { IdSalleExamenSys = 3, NomSalle = "Salle03", color = "#7499e1", IdGrappeSys = 4},
        new  SalleExamenSys { IdSalleExamenSys = 4, NomSalle = "Salle04", color = "#7499e1", IdGrappeSys = 6}
}; 
the scheduler work fine but when getting data to service I get join error, is anybody have the same behaviour or I missing something or is about async await??

Thanks!
Chimène NK.


NR Nevitha Ravi Syncfusion Team December 31, 2019 11:56 AM UTC

Hi Nkouambia, 

Thanks for your update. 

We could replicate the reported issue “null exception on resourced binding”at our end and confirmed this as a defect. Therefore, we have logged a bug report which can be tracked from the following link. 


The issue fix will be included in our bi-weekly patch release scheduled on the mid of January, 2020. We would appreciate your patience until then. 

Regards, 
Nevitha. 



NR Nevitha Ravi Syncfusion Team January 9, 2020 04:23 AM UTC

Hi Nkouambia, 

Sorry for the inconvenience caused. 

On validating the issue further, we have found that the ‘resource data is not available during scheduler rendering’, so we can overcome the issue in application itself by using any of the following ways. 

  • We can hold the schedule rendering until the resource data is ready. Please refer the following code snippet.

@using Syncfusion.EJ2.Blazor.Schedule 
 
@if (grappeSalleLists == null && sallesList == null) 
{ 
    <p><em>Loading...</em></p> 
} 
else 
{ 
<EjsSchedule TValue="AppointmentData" Width="100%" Height="650px"> 
    <ScheduleGroup Resources="@resources"></ScheduleGroup> 
    <ScheduleResources> 
        <ScheduleResource TValue="GrappeSalle" DataSource="@grappeSalleLists" Field="IdGrappeSys" Title="Choose Project" Name="Grappes" TextField="NomGrappe" IdField="IdGrappeSys" ColorField="Color" AllowMultiple="false"></ScheduleResource> 
        <ScheduleResource TValue="SalleExamenSys" DataSource="@sallesList" Field="IdSalleExamenSys" Title="Salle Examen" Name="SalleExamens" TextField="NomSalle" IdField="IdSalleExamenSys" GroupIDField="IdGrappeSys" AllowMultiple="true" ColorField="Color"></ScheduleResource> 
    </ScheduleResources> 
</EjsSchedule> 
} 
 
@code { 
    public List<GrappeSalle> grappeSalleLists; 
    public List<SalleExamenSys> sallesList; 
    public string[] resources { get; set; } = new string[] {"Grappes", "SalleExamens"}; 
 
    protected override async Task OnInitializedAsync() 
    { 
        sallesList = await salleExamenList(); 
        grappeSalleLists = await grappeSalleList(); 
    } 
 
 
} 

  • We can provide the resource data using custom adaptor in which scheduler rendering will wait till the resource data is received.
 
@using Syncfusion.EJ2.Blazor 
@using Syncfusion.EJ2.Blazor.Schedule 
@using Syncfusion.EJ2.Blazor.Data 
 
<EjsSchedule TValue="AppointmentData" Width="100%" Height="650px"> 
    <ScheduleGroup Resources="@resources"></ScheduleGroup> 
    <ScheduleResources> 
        <ScheduleResource TValue="GrappeSalle" Field="IdGrappeSys" Title="Choose Project" Name="Grappes" TextField="NomGrappe" IdField="IdGrappeSys" ColorField="Color" AllowMultiple="false"> 
            <EjsDataManager AdaptorInstance="@typeof(CustomAdaptor1)" Adaptor="Adaptors.CustomAdaptor"></EjsDataManager> 
        </ScheduleResource> 
        <ScheduleResource TValue="SalleExamenSys" Field="IdSalleExamenSys" Title="Salle Examen" Name="SalleExamens" TextField="NomSalle" IdField="IdSalleExamenSys" GroupIDField="IdGrappeSys" AllowMultiple="true" ColorField="Color"> 
            <EjsDataManager AdaptorInstance="@typeof(CustomAdaptor2)" Adaptor="Adaptors.CustomAdaptor"></EjsDataManager> 
        </ScheduleResource> 
    </ScheduleResources> 
</EjsSchedule> 
 
@code { 
    public class CustomAdaptor1 : DataAdaptor 
    { 
        public async override Task<object> ReadAsync(DataManagerRequest dataManagerRequest, string key = null) 
        { 
            List<GrappeSalle> ScheduleData = await grappeSalleList(); 
            return dataManagerRequest.RequiresCounts ? new DataResult() { Result = ScheduleData, Count = ScheduleData.Count() } : (object)ScheduleData; 
        } 
    } 
     public class CustomAdaptor2 : DataAdaptor 
    { 
        public async override Task<object> ReadAsync(DataManagerRequest dataManagerRequest, string key = null) 
        { 
            List<SalleExamenSys> ScheduleData = await salleExamenList(); 
            return dataManagerRequest.RequiresCounts ? new DataResult() { Result = ScheduleData, Count = ScheduleData.Count() } : (object)ScheduleData; 
        } 
    } 
…. 
…. 
} 

Please refer the sample from the following link in which we have showcased both the ways and get back to us if you need any further assistance. 

Note: We recommend you to follow the first solution which is Blazor standard way. 

Regards, 
Nevitha 



NC NKOUAMBIA CHIMENE January 9, 2020 04:40 PM UTC

Hello Nevitha,

By adding the if{} statement it works thanks, but it just strange because before upgrade the syncfusion version the code without the if works... 

I appreciate your help thanks!

Best Regards,
Chimène NK.


AK Alagumeena Kalaiselvan Syncfusion Team January 13, 2020 04:50 PM UTC

Hi Holger, 
  
Thanks for your update!... 
  
We have included some stability related fixes for scheduler in our upgraded version and also “ if ” statement is one of the blazor standardized way to handle incomplete asynchronous actions at component rendering. Refer below link for that 
  
  
Please let us know, if you need further assistance. 
  
Regards 
Alagumeena.K 
  


Loader.
Live Chat Icon For mobile
Up arrow icon