public static void CheckContactStatusTransition(ARContact contact, string contactStatus) { bool isValid = (contactStatus != ContactStatus.ChuaDuyet) && (contact.ARContactStatus != ContactStatus.HuyBo); if (contactStatus == ContactStatus.DangXacMinh) { isValid = contact.ARContactStatus == ContactStatus.ChuaDuyet; } if (!isValid) { throw new BusinessException("Trạng thái liên hệ không hợp lệ"); } }
public static ShortContactDto ToShortContactDto(this ARContact entity) { return(entity == null ? null : new ShortContactDto { Id = entity.Id, Email = entity.ARContactEmail, Contributor = entity.ADCreatedUser.ToShortUserDto(), ContactName = entity.ARContactName, Phone1 = entity.ARContactPhone1, UserContact = entity.ARContactUserContact, ContributeDate = entity.AACreatedDate.ToSecondsTimestamp(), Status = entity.ARContactStatus.ToDictionaryItemDto <ContactStatus>(), AverageRating = entity.ARContactEvalution.GetValueOrDefault(), AggregateOfRatings = entity.ARContactReviews.ToAggregateOfRatings(), TitleContribute = entity.ARContactTitleContribute, ReviewCount = entity.ARContactReviews.ToReviewCount(), }); }
private static void UpdateContactDto(ARContact entity, EditContactDto dto) { entity.ARContactContributor = dto.Contributor; entity.ARContactTitleContribute = dto.TitleContribute; entity.FK_ARContactTypeID = dto.ContactTypeID; entity.ARContactName = dto.ContactName; entity.ARContactAcronymName = dto.AcronymName; entity.ARContactUserContact = dto.UserContact; entity.ARContactPhone1 = dto.Phone1; entity.ARContactPhone2 = dto.Phone2; entity.ARContactEmail = dto.Email; entity.ARContactWebsite = dto.Website; entity.ARContactNote = dto.Note; entity.ARContactImage = dto.Images.JoinNotEmpty(";"); entity.FK_GEStateProvinceID = dto.StateProvinceID; entity.FK_GEDistrictID = dto.DistrictID; entity.FK_GECommuneID = dto.CommuneID; entity.ARUserHouseNumber = dto.HouseNumber; entity.ARUserAddress = dto.Address; }
public static ContactDto ToContactDto(this ARContact entity) { return(entity == null ? null : new ContactDto { Id = entity.Id, Email = entity.ARContactEmail, AcronymName = entity.ARContactAcronymName, Images = entity.ARContactImage.SplitBy(";").Select(x => x + CommonConstants.DefaultImageExtension).ConvertArray(ImageUrlHelper.ToImageUrl), HouseNumber = entity.ARUserHouseNumber, Website = entity.ARContactWebsite, Contributor = entity.ADCreatedUser.ToShortUserDto(), StateProvince = entity.GEStateProvince.ToDictionaryItemDto(), TitleContribute = entity.ARContactTitleContribute, Detail = entity.ARContactDetail, Note = entity.ARContactNote, Commune = entity.GECommune.ToDictionaryItemDto(), District = entity.GEDistrict.ToDictionaryItemDto(), ContactName = entity.ARContactName, Phone1 = entity.ARContactPhone1, Phone2 = entity.ARContactPhone2, ContactType = entity.ARContactType.ToDictionaryItemDto(), Address = entity.ARUserAddress, UserContact = entity.ARContactUserContact, UserType = entity.ARContactUserType.ToDictionaryItemDto <UserType>(), AverageRating = entity.ARContactEvalution.GetValueOrDefault(), AggregateOfRatings = entity.ARContactReviews.ToAggregateOfRatings(), ContributeDate = entity.AACreatedDate.ToSecondsTimestamp(), LocationInCharge = entity.ARContactForestCommuneGroups.ConvertArray( x => new ContactLocationInChargeDto { Commune = x.GECommune.ToDictionaryItemDto(), District = x.GECommune?.GEDistrict.ToDictionaryItemDto(), StateProvince = x.GECommune?.GEDistrict?.GEStateProvince.ToDictionaryItemDto() }), Status = entity.ARContactStatus.ToDictionaryItemDto <ContactStatus>() }); }
public void SendTwilioNotification(ARInvoiceEntry invGraph, string notificationType, bool isMassProcess = false) { ARInvoiceEntryPXExt invGraphExt = invGraph.GetExtension <ARInvoiceEntryPXExt>(); //Raise error if Twilio Integration Setup not configured if (invGraphExt.TwilioSetupInfo.Current == null) { throw new PXException(Messages.TwilioAccountNotSetup); } //Get current billing contact if (invGraph.Billing_Contact.Current == null) { invGraph.Billing_Contact.Current = invGraph.Billing_Contact.Select(); } ARContact contact = invGraph.Billing_Contact.Current; if (contact == null || String.IsNullOrEmpty(contact.Phone1)) { throw new PXException(Messages.InvoiceBillingContactNotExists); } int?iNotificationID = (notificationType == TwilioNotificationType.SMS) ? invGraphExt.TwilioSetupInfo.Current?.SMSNotificationID : invGraphExt.TwilioSetupInfo.Current?.CallNotificationID; //Raise notification appropriate error message if (notificationType == TwilioNotificationType.SMS) { if (iNotificationID == null) { throw new PXException(Messages.SMSNotificationIDNotSpecified); } } else if (notificationType == TwilioNotificationType.OutBoundCall) { if (iNotificationID == null) { throw new PXException(Messages.CallNotificationIDNotSpecified); } } else { throw new PXException(Messages.UNSpecifiedTwilioNotificationType); } //Get the notification PX.SM.Notification notification = PXSelect <PX.SM.Notification, Where <PX.SM.Notification.notificationID, Equal <Required <PX.SM.Notification.notificationID> > > > . Select(invGraph, invGraphExt.TwilioSetupInfo.Current.SMSNotificationID); if (notification == null) { throw new PXException(Messages.NotificationNotFound); } //Process the datafields and get Subject and Notification Body ready. string subjectNotification = String.Format("{0} - {1}", (notificationType == TwilioNotificationType.SMS) ? Messages.SMSSubjectPrefix : Messages.CallSubjectPrefix, PX.Data.Wiki.Parser.PXTemplateContentParser. Instance.Process(notification.Subject, invGraph, invGraph.Document.Current.GetType(), null)); string bodyNotification = PX.Data.Wiki.Parser.PXTemplateContentParser. Instance.Process(notification.Body, invGraph, invGraph.Document.Current.GetType(), null); //Create Twilio Notification var twilio = new TwilioNotification(invGraphExt.TwilioSetupInfo.Current.TwilioAccountSid, invGraphExt.TwilioSetupInfo.Current.TwilioAuthToken) { Origin = invGraphExt.TwilioSetupInfo.Current.TwilioFromPhoneNumber }; if (notificationType == TwilioNotificationType.SMS) { twilio.SendSMS(contact.Phone1, PX.Data.Search.SearchService.Html2PlainText(bodyNotification)); } else if (notificationType == TwilioNotificationType.OutBoundCall) { twilio.SendCall(contact.Phone1, PX.Data.Search.SearchService.Html2PlainText(bodyNotification)); } else { throw new PXException(Messages.UNSpecifiedTwilioNotificationType); } //Create Activity in Acumataica CreateTwilioNotificationActivity(invGraph, subjectNotification, bodyNotification); }