Files
BeWoPlaner/Shared/DataContracts/SchedulerAppointmentDC.cs
Lyndon Jetten 659ec6b3eb Kalender:
Die Abfrage nach der Ressourcenbelegung kommt nur ein mal und das Abbrechen des Speicherns hat keinen "kaputten" Reload zur Folge
    Das Löschen eines Serientermins mit veränderten oder gelöschten Elementen führt zu keiner Exception mehr, da ich den Service-Aufruf auf synchron geändert habe.
    Es gibt allerdings noch Bugs! -> Serientermin erstellen und ein Element davon ändern führt zu einer doppelten Abfrage, ausgelöst durch die Überlappungsprüfung, die eine    Überlappung mit der Serie selbst feststellt!
2020-11-20 23:28:09 +01:00

143 lines
3.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using BS.Shared.DataContracts.Compact;
namespace BS.Shared.DataContracts
{
[DataContract]
public class SchedulerAppointmentDC : IDataContract
{
[DataMember]
public ActivationTypeId ActivationType { get; set; }
[DataMember]
public long? SchedulerAppointmentOid { get; set; }
[DataMember]
public long? NewSchedulerAppointmentVersion { get; set; }
[DataMember]
public bool IsPrivate { 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 Originator { get; set; }
[DataMember]
public int LabelId { get; set; }
[DataMember]
public bool AllDay { 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 List<CompactCustomerDC> CustomerList { get; set; }
[DataMember]
public List<Employee2SchedulerAppointmentDC> EmployeeList { get; set; }
[DataMember]
public List<ResourceDC> ResourceList { get; set; }
[DataMember]
public long? FormerBookingSequenceOid { get; set; }
[DataMember]
public bool IsTeilnahmeBestaetigung { get; set; }
[DataMember]
public bool IsTask { get; set; }
[DataMember]
public string CompletedNotice { get; set; }
[DataMember]
public string TaskDescription { get; set; }
[DataMember]
public DateTime? CompletedDate { get; set; }
[DataMember]
public DateTime? DueDate { get; set; }
[DataMember]
public List<CompactSupportConceptDC> SupportConceptList { get; set; }
public int RecurrenceIndex { get; set; }
public string RecurrenceId { get; set; }
[DataMember]
public long? FormerTaskOid { get; set; }
[DataMember]
public bool HasServiceRecordEntry { get; set; }
public override bool Equals(object obj)
{
if (!(obj is SchedulerAppointmentDC))
{
return false;
}
var y = (SchedulerAppointmentDC) obj;
if (SchedulerAppointmentOid == null && y.SchedulerAppointmentOid == null)
{
return GetHashCode() == y.GetHashCode();
}
if (SchedulerAppointmentOid != null && y.SchedulerAppointmentOid != null)
{
return SchedulerAppointmentOid == y.SchedulerAppointmentOid;
}
var value = StartDate == y.StartDate && EndDate == y.EndDate && Type == y.Type && Description == y.Description &&
EmployeeList.SequenceEqual(y.EmployeeList) &&
ResourceList.SequenceEqual(y.ResourceList) &&
CustomerList.SequenceEqual(y.CustomerList) &&
SupportConceptList.SequenceEqual(y.SupportConceptList);
return value;
}
public override int GetHashCode()
{
return SchedulerAppointmentOid.HasValue
? GetType().Name.GetHashCode() ^ SchedulerAppointmentOid.GetHashCode()
: base.GetHashCode();
}
public override string ToString() => $"{SchedulerAppointmentOid} {StartDate:dd.MM.yyyy HH:mm}-{EndDate:dd.MM.yyyy HH:mm}: {Subject}";
}
}