private bool SaveAndNotifyAccountingRepresentative(RevenueRecognition model) { try { var userToNotifydetail = _contractRefactorService.GetKeyPersonnelByContractGuid(model.ContractGuid) .FirstOrDefault(x => x.UserRole == ContractUserRole._accountRepresentative); if (userToNotifydetail != null) { Guid userToNotify = userToNotifydetail.UserGuid; var contractType = _contractRefactorService.GetContractType(model.ContractGuid); var key = Infrastructure.Helpers.FormatHelper.ConcatResourceTypeAndAction(EnumGlobal.ResourceType.RevenueRecognition.ToString(), EnumGlobal.CrudType.Notify.ToString()); var updatedByName = _userService.GetUserByUserGuid(model.UpdatedBy); var receiverUserName = _userService.GetUserByUserGuid(userToNotify).DisplayName; return(AddNotificationMessage(model)); } return(true); } catch (Exception ex) { var userGuid = UserHelper.CurrentUserGuid(HttpContext); EventLogHelper.Error(_eventLogger, new EventLog { EventGuid = Guid.NewGuid(), Action = "", Application = "ESS", EventDate = DateTime.UtcNow, Message = ex.Message, Resource = ResourceType.Notification.ToString(), StackTrace = ex.StackTrace, UserGuid = userGuid }); return(false); } }
private bool AddNotificationMessage(RevenueRecognition model) { try { var notificationModel = new GenericNotificationViewModel(); var notificationTemplatesDetails = new NotificationTemplatesDetail(); var userList = new List <User>(); var receiverInfo = new User(); Guid? receiverGuid = Guid.Empty; decimal thresholdAmount = 0.00M; string key = string.Empty; string contractNumber = string.Empty; string taskorderNumber = string.Empty; var contractdetails = _contractRefactorService.GetOnlyRequiredContractData(model.ContractGuid); notificationModel.RedirectUrl = _configuration.GetSection("SiteUrl").Value + ("/contract/Details/" + model.ContractGuid); if (contractdetails != null) { if (contractdetails.ParentContractGuid != null) { if (contractdetails.ParentContractGuid != Guid.Empty) { key = Infrastructure.Helpers.FormatHelper.ConcatResourceTypeAndAction(EnumGlobal.ResourceType.RevenueRecognition.ToString(), EnumGlobal.ResourceAction.TaskOrderReview.ToString()); var parentcontractEntity = _contractRefactorService.GetOnlyRequiredContractData(contractdetails.ParentContractGuid); contractNumber = parentcontractEntity.ContractNumber; taskorderNumber = contractdetails.ContractNumber; notificationModel.RedirectUrl = _configuration.GetSection("SiteUrl").Value + ("/project/Details/" + model.ContractGuid); } else { key = Infrastructure.Helpers.FormatHelper.ConcatResourceTypeAndAction(EnumGlobal.ResourceType.RevenueRecognition.ToString(), EnumGlobal.ResourceAction.ContractReview.ToString()); } } else { key = Infrastructure.Helpers.FormatHelper.ConcatResourceTypeAndAction(EnumGlobal.ResourceType.RevenueRecognition.ToString(), EnumGlobal.ResourceAction.ContractReview.ToString()); } notificationModel.ResourceId = model.ContractGuid; notificationModel.NotificationTemplateKey = key; notificationModel.CurrentDate = CurrentDateTimeHelper.GetCurrentDateTime(); notificationModel.CurrentUserGuid = UserHelper.CurrentUserGuid(HttpContext); notificationModel.SendEmail = true; var keyPersonnels = _contractRefactorService.GetKeyPersonnelByContractGuid(model.ContractGuid); if (keyPersonnels?.Any() == true) { receiverGuid = keyPersonnels.FirstOrDefault(x => x.UserRole == ContractUserRole._contractRepresentative)?.UserGuid; if (receiverGuid != Guid.Empty) { thresholdAmount = RevenueRecognitionHelper.GetAmountByContractType(_configuration, model.ContractType); receiverInfo = _userService.GetUserByUserGuid(receiverGuid ?? Guid.Empty); var resourcevalue = _resourceAttributeValueService.GetResourceAttributeValueByValue(model.ContractType); string contracttype = string.Empty; if (resourcevalue != null) { contracttype = resourcevalue.Name; } if (receiverInfo != null) { userList.Add(receiverInfo); notificationModel.IndividualRecipients = userList; } var keyList = "<ul>"; keyList += "<li>" + receiverInfo.DisplayName + " (" + receiverInfo.JobTitle + ")" + "</li>"; StringBuilder additionalUser = new StringBuilder(keyList); notificationTemplatesDetails.ContractNumber = contractNumber; notificationTemplatesDetails.TaskOrderNumber = taskorderNumber; notificationTemplatesDetails.Title = contractdetails.ContractTitle; notificationTemplatesDetails.ContractType = contracttype; notificationTemplatesDetails.ContractTitle = contractdetails.ContractTitle; notificationTemplatesDetails.ProjectNumber = contractdetails.ProjectNumber; notificationTemplatesDetails.AdditionalUser = additionalUser.ToString(); notificationTemplatesDetails.ThresholdAmount = thresholdAmount; notificationTemplatesDetails.Status = ""; notificationModel.NotificationTemplatesDetail = notificationTemplatesDetails; _genericNotificationService.AddNotificationMessage(notificationModel); return(true); } } } return(false); } catch (Exception ex) { var userGuid = UserHelper.CurrentUserGuid(HttpContext); EventLogHelper.Error(_eventLogger, new EventLog { EventGuid = Guid.NewGuid(), Action = "Index", Application = "ESS", EventDate = DateTime.UtcNow, Message = ex.Message, Resource = ResourceType.Contract.ToString(), StackTrace = ex.StackTrace, UserGuid = userGuid }); return(false); } }
public int UpdateRevenueRecognition(RevenueRecognition RevenueRecognition) { return(_iRevenueRecognitionRepository.UpdateRevenueRecognition(RevenueRecognition)); }
public bool AddRevenueWithResourceGuid(RevenueRecognition revenueRecognition) { return(_iRevenueRecognitionRepository.AddRevenueWithResourceGuid(revenueRecognition)); }