public async Task <HttpResponseMessage> SaveTickets() { httpResponseMessage = new HttpResponseMessage(); try { int TicketId = 0, DocumentId = 0; string UserEmail = ""; if (System.Web.HttpContext.Current.Request.Form.AllKeys.Length > 0) { TicketRequest ticketRequest = new TicketRequest(); // Show all the key-value pairs. foreach (var key in System.Web.HttpContext.Current.Request.Form.AllKeys) { foreach (var val in System.Web.HttpContext.Current.Request.Form.GetValues(key)) { switch (key) { case "Email": ticketRequest.Email = val; UserEmail = ticketRequest.Email; break; case "Subject": ticketRequest.Subject = val; break; case "Message": ticketRequest.Message = val; break; case "Department": ticketRequest.Department = val; break; case "Priority": ticketRequest.Priority = val; break; default: break; } } } TicketId = await _IAccountService.SaveTickets(ticketRequest); } else { httpResponseMessage = Request.CreateResponse(HttpStatusCode.OK, new { Message = CustomErrorMessages.INVALID_INPUTS, Success = false }); return(httpResponseMessage); } var listOfStrings = new List <string>(); System.Web.HttpFileCollection hfc = System.Web.HttpContext.Current.Request.Files; if (hfc.Count > 0 && TicketId > 0) { int iUploadedCnt = 0; // CHECK THE FILE COUNT. for (int iCnt = 0; iCnt <= hfc.Count - 1; iCnt++) { System.DateTime myDate = DateTime.Now; int year = myDate.Year; int month = myDate.Month; var PartialPath = "/Uploads/Documents/" + year + "/" + month + "/"; var FilePath = "~" + PartialPath; bool exists = System.IO.Directory.Exists(HttpContext.Current.Server.MapPath(FilePath)); if (!exists) { System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath(FilePath)); } System.Web.HttpPostedFile hpf = hfc[iCnt]; if (hpf.ContentLength > 0) { string FileName = "Ticket_" + Guid.NewGuid().ToString() + Path.GetExtension(hpf.FileName); // CHECK IF THE SELECTED FILE(S) ALREADY EXISTS IN FOLDER. (AVOID DUPLICATE) if (!File.Exists(FilePath + FileName)) { var FilePathWithFilename = Path.Combine(HttpContext.Current.Server.MapPath(FilePath), FileName); // SAVE THE FILES IN THE FOLDER. hpf.SaveAs(FilePathWithFilename); listOfStrings.Add(FilePathWithFilename); iUploadedCnt = iUploadedCnt + 1; Document document = new FacePinPoint.Repository.Document(); document.DocumentName = FileName; document.DocumentPath = PartialPath + "/" + FileName; DocumentId = await _IAccountService.SaveDocument(document); if (DocumentId > 0 && TicketId > 0) { TicketAttachment ticketAttachment = new TicketAttachment(); ticketAttachment.DocumentId = DocumentId; ticketAttachment.TicketId = TicketId; await _IAccountService.SaveTicketAttachment(ticketAttachment); } } } } } string[] fileAttachment = listOfStrings.ToArray(); TicketMailRequest ticketMailRequest = new TicketMailRequest(); ticketMailRequest.fileAttachments = fileAttachment; ticketMailRequest.ticketId = TicketId; ticketMailRequest.UserEmail = UserEmail; bool isMailSend = await _IAccountService.SendTicketMail(ticketMailRequest); if (isMailSend) { httpResponseMessage = Request.CreateResponse(HttpStatusCode.OK, new { Message = CustomErrorMessages.TICKET_SAVED_SUCCESSFULLY, Success = true }); } else { httpResponseMessage = Request.CreateResponse(HttpStatusCode.OK, new { Message = "Mail not sent", Success = false }); } } catch (System.Exception ex) { Elmah.ErrorSignal.FromCurrentContext().Raise(ex); httpResponseMessage = Request.CreateResponse(HttpStatusCode.OK, new { Message = CustomErrorMessages.INTERNAL_ERROR, Success = false }); } return(httpResponseMessage); }
public async Task <bool> SendTicketMail(TicketMailRequest TicketMail) { return(await _IAccountRepository.SendTicketMail(TicketMail)); }