using System; using System.Collections.Generic; using System.Linq; using System.Text; using BeWo.ViewModel; using BS.Shared; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; namespace BeWo.Scheduler.ViewModel { public class NewSchedulerAppointmentVM : AbstractDCMapperVM, IBeWoAppointment { public static string PropertyName_Type = "Type"; public static string PropertyName_Start = "Start"; public static string PropertyName_End = "End"; public static string PropertyName_AllDay = "AllDay"; public static string PropertyName_Subject = "Subject"; public static string PropertyName_Location = "Location"; public static string PropertyName_Status = "Status"; public static string PropertyName_RecurrenceInfo = "RecurrenceInfo"; public static string PropertyName_ReminderInfo = "ReminderInfo"; public static string PropertyName_Description = "Description"; public static string PropertyName_EmployeeList = "EmployeeList"; public static string PropertyName_CustomerList = "CustomerList"; public static string PropertyName_ResourceList = "ResourceList"; public static string PropertyName_IsPrivate = "IsPrivate"; public static string PropertyName_Originator = "Originator"; private bool _AllDay; private String _Description; private DateTime _End; private String _Location; private String _RecurrenceInfo; private String _ReminderInfo; private DateTime _Start; private int _Status; private String _Subject; private int _Type; private Dictionary _CustomFields; private bool _IsPrivate; private Dictionary _EmployeeList; private List _CustomerList; private List _ResourceList; private CompactEmployeeDC _Originator; public BeWoAppointmentCategory AppointmentCategory { get; set; } public object Id { get; set; } public int LabelId { get; set; } public object ResourceId { get; set; } public Dictionary CustomFields { get { return _CustomFields ?? (_CustomFields = new Dictionary()); } } public int EventType { get { return _Type; } set { if (AreDifferent(_Type, value)) { _Type = value; StoreDirtyInformation(AreDifferent(DataContract.Type, value), PropertyName_Type); FirePropertyChanged(PropertyName_Type); } } } public DateTime End { get { return _End; } set { if (AreDifferent(_End, value)) { _End = value; StoreDirtyInformation(AreDifferent(DataContract.EndDate, value), PropertyName_End); FirePropertyChanged(PropertyName_End); } } } public DateTime Start { get { return _Start; } set { if (AreDifferent(_Start, value)) { _Start = value; StoreDirtyInformation(AreDifferent(DataContract.StartDate, value), PropertyName_Start); FirePropertyChanged(PropertyName_Start); } } } public bool AllDay { get { return _AllDay; } set { if (AreDifferent(_AllDay, value)) { _AllDay = value; StoreDirtyInformation(AreDifferent(DataContract.AllDay, value), PropertyName_AllDay); FirePropertyChanged(PropertyName_AllDay); } } } public String Subject { get { return _Subject; } set { if (AreDifferent(_Subject, value)) { _Subject = value; StoreDirtyInformation(AreDifferent(DataContract.Subject, value), PropertyName_Subject); FirePropertyChanged(PropertyName_Subject); } } } public String Location { get { return _Location; } set { if (AreDifferent(_Location, value)) { _Location = value; StoreDirtyInformation(AreDifferent(DataContract.Location, value), PropertyName_Location); FirePropertyChanged(PropertyName_Location); } } } public int Status { get { return _Status; } set { if (AreDifferent(_Status, value)) { _Status = value; StoreDirtyInformation(AreDifferent(DataContract.Status, value), PropertyName_Status); FirePropertyChanged(PropertyName_Status); } } } public String RecurrenceInfo { get { return _RecurrenceInfo; } set { if (AreDifferent(_RecurrenceInfo, value)) { _RecurrenceInfo = value; StoreDirtyInformation(AreDifferent(DataContract.RecurrenceInfo, value), PropertyName_RecurrenceInfo); FirePropertyChanged(PropertyName_RecurrenceInfo); } } } public String ReminderInfo { get { return _ReminderInfo; } set { if (AreDifferent(_ReminderInfo, value)) { _ReminderInfo = value; StoreDirtyInformation(AreDifferent(DataContract.ReminderInfo, value), PropertyName_ReminderInfo); FirePropertyChanged(PropertyName_ReminderInfo); } } } public String Description { get { return _Description; } set { if (AreDifferent(_Description, value)) { _Description = value; StoreDirtyInformation(AreDifferent(DataContract.Description, value), PropertyName_Description); FirePropertyChanged(PropertyName_Description); } } } public Dictionary EmployeeList { get { return _EmployeeList ?? (_EmployeeList = new Dictionary()); } set { if (AreDifferent(_EmployeeList, value)) { _EmployeeList = value; StoreDirtyInformation(AreDifferent(DataContract.EmployeeList, value), PropertyName_EmployeeList); FirePropertyChanged(PropertyName_EmployeeList); } } } public List CustomerList { get { return _CustomerList ?? (_CustomerList = new List()); } set { if (AreDifferent(_CustomerList, value)) { _CustomerList = value; StoreDirtyInformation(AreDifferent(DataContract.CustomerList, value), PropertyName_CustomerList); FirePropertyChanged(PropertyName_CustomerList); } } } public List ResourceList { get { return _ResourceList ?? (ResourceList = new List()); } set { if (AreDifferent(_ResourceList, value)) { _ResourceList = value; StoreDirtyInformation(AreDifferent(DataContract.ResourceList, value), PropertyName_ResourceList); FirePropertyChanged(PropertyName_ResourceList); } } } public bool IsPrivate { get { return _IsPrivate; } set { if (AreDifferent(_IsPrivate, value)) { _IsPrivate = value; StoreDirtyInformation(AreDifferent(DataContract.IsPrivate,value), PropertyName_IsPrivate); FirePropertyChanged(PropertyName_IsPrivate); } } } public CompactEmployeeDC Originator { get { return _Originator; } set { if (AreDifferent(_Originator, value)) { _Originator = value; StoreDirtyInformation(AreDifferent(DataContract.Originator, value), PropertyName_Originator); FirePropertyChanged(PropertyName_Originator); } } } protected override void InitByDataContract(NewSchedulerAppointmentDC pDataContract) { _Description = pDataContract.Description; _End = pDataContract.EndDate.Value; _Location = pDataContract.Location; _RecurrenceInfo = pDataContract.RecurrenceInfo; _ReminderInfo = pDataContract.ReminderInfo; _Start = pDataContract.StartDate.Value; _Status = pDataContract.Status; _Subject = pDataContract.Subject; _Type = pDataContract.Type; _IsPrivate = pDataContract.IsPrivate; _Originator = pDataContract.Originator; _CustomerList = pDataContract.CustomerList; _EmployeeList = pDataContract.EmployeeList; _ResourceList = pDataContract.ResourceList; _CustomFields = new Dictionary { { "Originator", Originator }, { "CustomerList", CustomerList }, { "EmployeeList", EmployeeList }, { "ResourceList", ResourceList } }; } protected override NewSchedulerAppointmentDC MapToDataContract(NewSchedulerAppointmentDC pDataContract, bool doCommit) { pDataContract.AllDay = _AllDay; pDataContract.Description = _Description; pDataContract.EndDate = _End; pDataContract.Location = _Location; pDataContract.RecurrenceInfo = _RecurrenceInfo; pDataContract.ReminderInfo = _ReminderInfo; pDataContract.StartDate = _Start; pDataContract.Status = _Status; pDataContract.Subject = _Subject; pDataContract.Type = _Type; pDataContract.IsPrivate = _IsPrivate; pDataContract.Originator = _Originator; pDataContract.CustomerList = _CustomerList; pDataContract.EmployeeList = _EmployeeList; pDataContract.ResourceList = _ResourceList; return pDataContract; } } }