private void scheduler_UserEditingAppointment(object sender, C1.WPF.Schedule.AppointmentActionEventArgs e) { e.Handled = true; ICRMWindowRouter CRMWindowRouter = AifServiceContainer.Instance.GetService <ICRMWindowRouter>(); Guid id = (Guid)e.Appointment.Key[0]; SchedulerAppointment appt = appointmentList.FirstOrDefault(a => a.Id == id); if (appt != null) { CRMWindowRouter.DoRoutePopup(localSession, this.ApplicationName, appt.ActivityType, appt.Id.ToString(), String.Empty); } }
private void FillDataSet(SchedulerAppointmentList apptList, Dictionary <string, Dictionary <string, object> > response) { if (response == null) { return; } bool checkForDups = true; if (apptList.Count() == 0) { checkForDups = false; } foreach (string key in response.Keys) { try { SchedulerAppointment schedAppt = new SchedulerAppointment(); schedAppt.Subject = "[" + (string)response[key]["activitytypecode"] + "] " + (String)(response[key].ContainsKey("subject") ? response[key]["subject"] : ""); schedAppt.Id = (Guid)(response[key]["activityid"]); schedAppt.Start = (DateTime)(response[key].ContainsKey("scheduledstart") ? DateTime.Parse((string)response[key]["scheduledstart"]) : DateTime.Now); schedAppt.End = (DateTime)(response[key].ContainsKey("scheduledend") ? DateTime.Parse((string)response[key]["scheduledend"]) : DateTime.Now); schedAppt.Body = (String)(response[key].ContainsKey("description") ? response[key]["description"] : ""); schedAppt.StatusCode = (String)(response[key].ContainsKey("statuscode") ? response[key]["statuscode"] : ""); schedAppt.StateCode = (String)(response[key].ContainsKey("statecode") ? response[key]["statecode"] : ""); schedAppt.Location = ""; schedAppt.Properties = ""; if (response[key]["activitytypecode_Property"] is KeyValuePair <string, object> ) { schedAppt.ActivityType = ((KeyValuePair <string, object>)response[key]["activitytypecode_Property"]).Value as string; } else { schedAppt.ActivityType = (string)response[key]["activitytypecode"]; } if (checkForDups == true) { SchedulerAppointment existingAppt = apptList.FirstOrDefault(a => a.Id == schedAppt.Id); if (existingAppt != null) { apptList.Remove(existingAppt); if (schedAppt.StateCode != "Completed" && schedAppt.StateCode != "Cancelled") { apptList.Add(schedAppt); } continue; } else { if (schedAppt.StateCode == "Completed" || schedAppt.StateCode == "Cancelled") { continue; } } } apptList.Add(schedAppt); } catch { } } }