/// <summary> /// Prepare Email options for equipment requests /// </summary> /// <param name="requestViewModel"></param> /// <returns></returns> private EmailOptions PrepareEmailOptions(EquipmentRequestViewModel requestViewModel) { var emailOptions = new EmailOptions { Template = MailTemplate.Equipment, PlainBody = string.Empty, Attachments = new List <Attachment>() }; var msgBody = SendGridMailHelper.MailBody(_hostingEnvironment, emailOptions.Template); if (!string.IsNullOrEmpty(msgBody)) { emailOptions.Subject = "Request for Equipment Received - SubQuip"; emailOptions.CcMail = new MailUser { Name = "SubQuip", Email = _configuration["requestEmail"] }; emailOptions.ToMailsList = requestViewModel.MailUsers; emailOptions.HtmlBody = msgBody.Replace("{EquipmentNumber}", requestViewModel.EquipmentNumber).Replace("{FromDate}", requestViewModel.FromDate.ToString("dd-MM-yyyy")).Replace("{ToDate}", requestViewModel.ToDate.ToString("dd-MM-yyyy")); } return(emailOptions); }
/// <summary> /// Insert Equipment Request /// </summary> /// <param name="equipmentRequestViewModel"></param> /// <returns></returns> public IResult InsertEquipmentRequest(List <FileDetails> fileList, EquipmentRequestViewModel equipmentRequestViewModel) { equipmentRequestViewModel.RequestId = null; var result = new Result { Operation = Operation.Create, Status = Status.Success }; try { var equipmentRequest = new Request(); equipmentRequest.MapFromViewModel(equipmentRequestViewModel, (ClaimsIdentity)_principal.Identity); equipmentRequest.MailUsers = new List <MailUserDetails>(); if (equipmentRequestViewModel.MailUsers != null && equipmentRequestViewModel.MailUsers.Any()) { equipmentRequest.MailUsers = equipmentRequestViewModel.MailUsers.Select(user => { var mailUser = new MailUserDetails(); mailUser.MapFromViewModel(user); return(mailUser); }).ToList(); } if (!string.IsNullOrEmpty(equipmentRequestViewModel.RegardingId)) { equipmentRequest.RegardingId = ObjectId.Parse(equipmentRequestViewModel.RegardingId); } _requestRepository.InsertOne(equipmentRequest); if (fileList != null && fileList.Any()) { equipmentRequest.Files = fileList.Select(fileViewModel => { var file = new File(); file.MapFromViewModel(fileViewModel, (ClaimsIdentity)_principal.Identity); _fileRepository.InsertOne(file); return(file.FileId); }).ToList(); } var updateDefinition = Builders <Request> .Update.Set(t => t.Files, equipmentRequest.Files); _requestRepository.UpdateOne(t => t.RequestId.Equals(equipmentRequest.RequestId), updateDefinition); if (equipmentRequest.Files != null && equipmentRequest.Files.Any()) { equipmentRequestViewModel.Files = new List <string>(); equipmentRequest.Files.ForEach(x => equipmentRequestViewModel.Files.Add(x.ToString())); } result.Body = equipmentRequestViewModel.MapFromModel(equipmentRequest); result.Message = RequestNotification.Created; } catch (Exception e) { result.Message = e.Message; result.Status = Status.Fail; } return(result); }