This is a migrated thread and some comments may be shown as answers.

[Solved] Null Reference Exception

0 Answers 181 Views
Scheduler
This is a migrated thread and some comments may be shown as answers.
Ricky Jones
Top achievements
Rank 1
Ricky Jones asked on 17 Jun 2009, 03:41 PM
When attempting to save an appointment I get the following a NullReferenceException.

Call Stack

[NullReferenceException: Object reference not set to an instance of an object.]Telerik.Web.UI.AdvancedTemplate.get_Range() +1509Telerik.Web.UI.AdvancedTemplate.<CreateBasicControlsValidators>b__1(Object source, ServerValidateEventArgs args) +40System.Web.UI.WebControls.CustomValidator.OnServerValidate(String value) +140System.Web.UI.WebControls.CustomValidator.EvaluateIsValid() +113System.Web.UI.WebControls.BaseValidator.Validate() +72System.Web.UI.Page.Validate(String validationGroup) +8742012System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +8737174System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565


Example Code.

    public class QuoteRateProvider : Telerik.Web.UI.SchedulerProviderBase
    {




        /// <summary>
        /// Converts the quote day to appt data.
        /// </summary>
        /// <param name="rate">The rate.</param>
        /// <returns></returns>
        Appointment ConvertQuoteDayToApptData(QuoteRateDay rate)
        {
            Appointment data = new Appointment();
            data.Subject = rate.Description;
            data.Visible = true;
            data.Start = rate.StartDate;
            data.End = rate.EndDate;
            data.Attributes.Add("ManualRatePercentage", rate.ManualQuotePercentage.ToString());
            foreach (string cls in rate.AircraftClasses)
            {
                Resource r = new Resource("AircraftClass", cls, cls);
                data.Resources.Add(r);
            }
            data.ID = rate.ID;
            data.DataItem = rate;
            return data;
        }


        /// <summary>
        /// Converts the quote day to appt data.
        /// </summary>
        /// <param name="rates">The rates.</param>
        /// <returns></returns>
        List<Appointment> ConvertQuoteDayToApptData(IEnumerable<QuoteRateDay> rates)
        {
            List<Appointment> returnList = new List<Appointment>();
            foreach (QuoteRateDay rate in rates)
            {
                returnList.Add(ConvertQuoteDayToApptData(rate));
            }
            return returnList;

        }

        /// <summary>
        /// Converts the appt data to quote day rate.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <returns></returns>
        QuoteRateDay ConvertApptDataToQuoteDay(Appointment data)
        {
            QuoteRateDay rate = new QuoteRateDay();
            rate.Description = data.Subject;
            rate.StartDate = data.Start;
            rate.EndDate = data.End;
            rate.ManualQuotePercentage = Convert.ToDecimal(data.Attributes["ManualRatePercentage"]);
            rate.ID = Convert.ToInt32(data.ID);
            foreach (Resource r in data.Resources)
            {
                rate.AircraftClasses.Add(r.Text);
            }
            return rate;
        }



        /// <summary>
        /// Converts the quote days to appt data.
        /// </summary>
        /// <param name="rates">The rates.</param>
        /// <returns></returns>
        IEnumerable<Appointment> ConvertApptDataToQuoteDay(IEnumerable<QuoteRateDay> rates)
        {
            List<Appointment> data = new List<Appointment>();
            foreach (QuoteRateDay rate in rates)
            {
                data.Add(ConvertQuoteDayToApptData(rate));
            }
            return data;
        }



        public override void Delete(Telerik.Web.UI.RadScheduler owner, Telerik.Web.UI.Appointment appointmentToDelete)
        {
            QuoteRateDayDataAccess.DeleteDailyQuoteRate(Convert.ToInt32(appointmentToDelete.ID));
        }


        public override IEnumerable<Telerik.Web.UI.Appointment> GetAppointments(Telerik.Web.UI.RadScheduler owner)
        {
            return ConvertQuoteDayToApptData(QuoteRateDayDataAccess.GetQuoteRateDays(owner.VisibleRangeStart, owner.VisibleRangeEnd));
        }


        public override IEnumerable<Telerik.Web.UI.ResourceType> GetResourceTypes(Telerik.Web.UI.RadScheduler owner)
        {
            ResourceType t = new ResourceType("AircraftClass", true);
            
            List<ResourceType> rt = new List<ResourceType>();
            rt.Add(t);
            return rt;
        }

        public override IEnumerable<Telerik.Web.UI.Resource> GetResourcesByType(Telerik.Web.UI.RadScheduler owner, string resourceType)
        {
            List<Resource> rt = new List<Resource>();
            rt.Add(new Resource("AircraftClass", "HVY", "HVY"));
            rt.Add(new Resource("AircraftClass", "MID", "MID"));
            rt.Add(new Resource("AircraftClass", "LGT", "LGT"));

            return rt;
        }

        public override void Insert(Telerik.Web.UI.RadScheduler owner, Telerik.Web.UI.Appointment appointmentToInsert)
        {
            QuoteRateDayDataAccess.InsertDailyQuoteRate(ConvertApptDataToQuoteDay(appointmentToInsert));
        }

        public override void Update(Telerik.Web.UI.RadScheduler owner, Telerik.Web.UI.Appointment appointmentToUpdate)
        {
            QuoteRateDayDataAccess.UpdateDailyQuoteRate(ConvertApptDataToQuoteDay(appointmentToUpdate));
        }
    }

No answers yet. Maybe you can help?

Tags
Scheduler
Asked by
Ricky Jones
Top achievements
Rank 1
Share this question
or