using Foresight.Fleet.Services.AssetHealth.WorkOrder; using Foresight.Fleet.Services.Customer; using Foresight.ServiceModel; using IronIntel.Contractor.Users; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IronIntel.Contractor.Maintenance { public class WorkOrderInfoClient : WorkOrderInfo { public string AssetName { get; set; } public string VIN { get; set; } public string MakeName { get; set; } public string ModelName { get; set; } public string TypeName { get; set; } public string DueDateStr { get { return DueDate == null ? "" : DueDate.Value.ToShortDateString(); } } public string CompleteDateStr { get { return CompleteDate == null ? "" : CompleteDate.Value.ToShortDateString(); } } public string NextFollowUpDateStr { get { return NextFollowUpDate == null ? "" : NextFollowUpDate.Value.ToShortDateString(); } } public string PartsExpectedDateStr { get { return PartsExpectedDate == null ? "" : PartsExpectedDate.Value.ToShortDateString(); } } public string LastLaborDateStr { get { return LastLaborDate == null ? "" : LastLaborDate.Value.ToShortDateString(); } } public ContactInfoClient[] ContactsClient { get; set; } public WorkOrderFollowerInfo[] Followers { get; set; } } public class ContactInfoClient : ContactInfo { public string ContactPreferenceStr { get; set; } public int SaveToCustomer { get; set; } } public class WorkOrderListItemClient : WorkOrderListItem { public string DueDateStr { get { return DueDate == null ? "" : DueDate.Value.ToShortDateString(); } } public string CompleteDateStr { get { return CompleteDate == null ? "" : CompleteDate.Value.ToShortDateString(); } } public string NextFollowUpDateStr { get { return NextFollowUpDate == null ? "" : NextFollowUpDate.Value.ToShortDateString(); } } public string CreateDateStr { get { return CreateDate == null ? "" : CreateDate.Value.ToShortDateString(); } } public string CreationDateStr { get { return CreationDate == null ? "" : CreationDate.Value.ToShortDateString(); } } public string LastCommunicationDateStr { get { return (LastCommunicationDate == null || LastCommunicationDate == DateTime.MinValue) ? "" : LastCommunicationDate.Value.ToShortDateString(); } } public string LastInternalCommunicationDateStr { get { return (LastInternalCommunicationDate == null || LastInternalCommunicationDate == DateTime.MinValue) ? "" : LastInternalCommunicationDate.Value.ToShortDateString(); } } public string PartsExpectedDateStr { get { return PartsExpectedDate == null ? "" : PartsExpectedDate.Value.ToShortDateString(); } } public string LastLaborDateStr { get { return LastLaborDate == null ? "" : LastLaborDate.Value.ToShortDateString(); } } public string MaintenanceID { get; set; } public WorkOrderStatus[] WorkOrderStatus { get; set; } public UserInfo[] AssignedToUsers { get; set; } public DepartmentInfo[] Departments { get; set; } public CustomerLocation[] Locations { get; set; } public StringKeyValue[] Salespersons { get; set; } public string ContactsStr { get { var rst = ""; if (Contacts != null && Contacts.Count > 0) { for (var i = 0; i < Contacts.Count; i++) { var contact = Contacts[i]; var ptext = contact.Name; if ((int)contact.ContactPreference == 0) { ptext += " – T"; if (contact.MobilePhoneDisplayText != "") ptext += " – " + contact.MobilePhoneDisplayText; } else if ((int)contact.ContactPreference == 1) { if (contact.Email != "") ptext += " - " + contact.Email; } else if ((int)contact.ContactPreference == 2) { ptext += " – P"; if (contact.MobilePhoneDisplayText != "") ptext += " – " + contact.MobilePhoneDisplayText; } if (string.IsNullOrEmpty(rst)) rst += ptext; else rst += ("\n" + ptext); } } return rst; } } } public class TextMessageClient : TextMessage { public bool StatusIncorrect {//6219, 2022-09-20 17:50:00 以前的状态可能存在问题,界面上不显示状态 get { return SystemParams.CustomerDetail.CustomerTimeToUtc(Time) < DateTime.Parse("2022-09-20 17:50:00"); } } public string FormatSender { get { var rst = ""; if (IsReply) { if (Helper.IsEmail(Sender) || !Helper.IsNumber(Sender)) rst = Sender; else rst = Foresight.Standard.PhoneNumber.FormatPhoneNumber(Sender); } return rst; } } public string[] OriPhoneNumbers { get { List ls = new List(); if (Participator != null && Participator.Count > 0) { foreach (var p in Participator) { if (Helper.IsEmail(p.CustomerNumber)) ls.Add(p.CustomerNumber); else { p.CustomerNumber = Foresight.Standard.PhoneNumber.FormatPhoneNumber(p.CustomerNumber); ls.Add(Foresight.Standard.PhoneNumber.PreparePhonenumber(p.CustomerNumber)); } } } return ls.ToArray(); } } public string TimeStr { get { return Time == DateTime.MinValue ? "" : Time.ToString("M/d/yyyy h:mm tt"); } } } }