Files
BeWoPlaner/Shared/DataContracts/AppointmentDC.cs

109 lines
3.1 KiB
C#

using System;
using System.Runtime.Serialization;
using BS.Shared.DataContracts.Compact;
namespace BS.Shared.DataContracts
{
[DataContract]
public class AppointmentDC : IDataContract
{
[DataMember]
public long? AppointmentOid { get; set; }
[DataMember]
public long? AppointmentVersion { get; set; }
[DataMember]
public object ContextObject { get; set; }
[DataMember]
public string Subject { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public DateTime StartDate { get; set; }
[DataMember]
public DateTime EndDate { get; set; }
[DataMember]
public CompactEmployeeDC ResponsibleEmployee { get; set; }
[DataMember]
public CompactEmployeeDC CreatorEmployee { get; set; }
[DataMember]
public int LabelId { get; set; }
[DataMember]
public bool AllDay { get; set; }
[DataMember]
public long? CustomerOid { get; set; }
[DataMember]
public long? EmployeeOid { get; set; }
[DataMember]
public int Status { get; set; }
[DataMember]
public int Type { get; set; }
[DataMember]
public string Location { get; set; }
[DataMember]
public string RecurrenceInfo { get; set; }
[DataMember]
public string ReminderInfo { get; set; }
[DataMember]
public AppointmentCategoryDC AppointmentCategory { get; set; }
public override bool Equals(object obj)
{
if (obj is AppointmentDC)
{
var y = (AppointmentDC) obj;
if (AppointmentOid == null && y.AppointmentOid == null)
{
return GetHashCode() == y.GetHashCode();
}
if (AppointmentOid != null && y.AppointmentOid != null)
{
return AppointmentOid == y.AppointmentOid;
}
if (StartDate == y.StartDate &&
EndDate == y.EndDate &&
Type == y.Type &&
Subject == y.Subject &&
Description == y.Description &&
CustomerOid == y.CustomerOid &&
EmployeeOid == y.EmployeeOid)
{
if (AppointmentCategory == null && y.AppointmentCategory == null)
return true;
if (AppointmentCategory != null && y.AppointmentCategory != null &&
AppointmentCategory.AppointmentCategoryOid == y.AppointmentCategory.AppointmentCategoryOid)
return true;
}
}
return false;
}
public override int GetHashCode()
{
return AppointmentOid.HasValue
? GetType().Name.GetHashCode() ^ AppointmentOid.GetHashCode()
: base.GetHashCode();
}
}
}