public IHttpActionResult getInvoiceDetailsbyInvoiceId(long invoiceId) { Response <InvoicePaymentdetailsandPaymentHistory> output = new Response <InvoicePaymentdetailsandPaymentHistory>(); InvoicePaymentdetailsandPaymentHistory InvoicePaymentdetailsandPaymentHistory = new InvoicePaymentdetailsandPaymentHistory(); InvoicepaymentDetails InvoicepaymentDetails = new InvoicepaymentDetails(); List <InvoicePaymentHistory> InvoicePaymentHistory = new List <InvoicePaymentHistory>(); try { long?headerUserId = null; var re = Request; var headers = re.Headers; if (headers.Contains("User")) { string strUserId = headers.GetValues("User").First(); headerUserId = Convert.ToInt64(strUserId); } InvoicepaymentDetails = invoiceMethods.GetInvoiceDetails(invoiceId); InvoicePaymentHistory = invoiceMethods.GetInvoicePaymentDetails(invoiceId); output.Status = true; output.Message = ""; InvoicePaymentdetailsandPaymentHistory.InvoicepaymentDetails = InvoicepaymentDetails; InvoicePaymentdetailsandPaymentHistory.InvoicePaymentHistory = InvoicePaymentHistory; output.Data = InvoicePaymentdetailsandPaymentHistory; //return response= Request.CreateResponse(HttpStatusCode.OK, (JObject.FromObject(output))); return(Ok(JObject.FromObject(output))); } catch (Exception ex) { output.Status = false; output.Message = ex.Message; //return Request.CreateResponse(HttpStatusCode.InternalServerError, JObject.FromObject(output)); return(InternalServerError(ex)); } }
public IHttpActionResult SendInvoiceDetails() { Response <InvoicepaymentDetails> output = new Response <InvoicepaymentDetails>(); try { long?headerUserId = null; var re = Request; var headers = re.Headers; if (headers.Contains("User")) { string strUserId = headers.GetValues("User").First(); headerUserId = Convert.ToInt64(strUserId); } var httprequest = HttpContext.Current.Request; //var data = JObject.Parse(httprequest.Form["InvoicePaymentDetailsObject"]).ToObject<InvoicepaymentDetails>(); InvoicepaymentDetails data = JsonConvert.DeserializeObject <InvoicepaymentDetails>(httprequest.Form["SendInvoiceDetailsObject"]); //var s = JsonExtensions.FromDelimitedJson<InvoicepaymentDetails>(new StringReader(httprequest.Form["InvoicePaymentDetailsObject"])).ToList(); if (!string.IsNullOrEmpty(data.FromEmail) && !string.IsNullOrEmpty(data.ToEmail) && !string.IsNullOrEmpty(data.subject) && !string.IsNullOrEmpty(data.email)) { if (data != null) { data.UserId = headerUserId; long validemailcount = 0; List <string> ToEmails = data.ToEmail.Split(',').Distinct().ToList(); foreach (var toemail in ToEmails) { bool isEmail = Regex.IsMatch(toemail, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase); if (isEmail) { validemailcount++; } } if (validemailcount == ToEmails.Count()) { byte[] invoicepdf = GenerateInvoicePDFinByteArray(data.vc_invoice_number, data.vc_invoice_date, data.InvoiceId, data.UserId); string invoicepdfstring = Convert.ToBase64String(invoicepdf); Mails mail = new Mails(); List <Email> EmailCCs = new List <Email>(); if (data.vc_project_manager_email != null) { if (Regex.IsMatch(data.vc_project_manager_email, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase)) { EmailCCs.Add(new Email(data.vc_project_manager_email)); } } if (data.vc_financial_email != null) { if (Regex.IsMatch(data.vc_financial_email, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase)) { EmailCCs.Add(new Email(data.vc_financial_email)); } } //EmailCCs.Add(new Email("*****@*****.**")); //EmailCCs.Add(new Email("*****@*****.**")); //data.ToEmail = "*****@*****.**"; var UserDetails = adminMethods.GetAllIBWUsers().Where(x => x.int_user_id == data.UserId).FirstOrDefault(); string invoicefilename = UserDetails != null ? data.vc_invoice_number + "-" + UserDetails.vc_user_name + " " + UserDetails.vc_alias_name + "-" + data.vc_invoice_date : data.vc_invoice_number + "-" + data.vc_invoice_date; invoiceMethods.UpdateSentInvoice(data.InvoiceId, data.vc_sent_to, data.vc_sent_by, data.UserId); bool result = mail.SendInvoice(data.subject, data.email, data.description, ToEmails.Distinct().ToList(), invoicepdfstring, data.FromEmail, invoicefilename, EmailCCs); if (result) { output.Message = "Invoice sent successfully"; output.Status = true; } else { output.Message = "Something went wrong"; output.Status = false; } } else { output.Message = "Please enter valid To email(s)"; output.Status = false; } } else { output.Message = "Invalid data"; output.Status = false; } } else { output.Message = !string.IsNullOrEmpty(data.FromEmail) ? !string.IsNullOrEmpty(data.ToEmail) ? !string.IsNullOrEmpty(data.subject) ? "Please enter email body" : "Please enter subject" : "Please enter to email" : "Please enter from email"; output.Status = false; } return(Ok(JObject.FromObject(output))); } catch (Exception ex) { output.Status = false; output.Message = ex.Message; return(InternalServerError(ex)); } }
public IHttpActionResult SaveInvoicePaymentDetails() { Response <InvoicepaymentDetails> output = new Response <InvoicepaymentDetails>(); try { long? headerUserId = null; HttpPostedFile Attachment = null; var re = Request; var headers = re.Headers; if (headers.Contains("User")) { string strUserId = headers.GetValues("User").First(); headerUserId = Convert.ToInt64(strUserId); } var httprequest = HttpContext.Current.Request; //var data = JObject.Parse(httprequest.Form["InvoicePaymentDetailsObject"]).ToObject<InvoicepaymentDetails>(); InvoicepaymentDetails data = JsonConvert.DeserializeObject <InvoicepaymentDetails>(httprequest.Form["InvoicePaymentDetailsObject"]); //var s = JsonExtensions.FromDelimitedJson<InvoicepaymentDetails>(new StringReader(httprequest.Form["InvoicePaymentDetailsObject"])).ToList(); if (data.PaymentTypeId != null && data.Amount != null && data.Amount > 0 && !string.IsNullOrEmpty(data.Comments) && httprequest.Files.Count > 0) { if (httprequest.Files.Count > 0) { for (var i = 0; i < httprequest.Files.Count; i++) { Attachment = httprequest.Files[i]; } } if (data != null) { data.UserId = headerUserId; if (invoiceMethods.UpdateInvoicePaymentDetails(data.InvoiceId, data.PaymentTypeId, data.Amount, data.Comments, data.UserId, data, Attachment) > 0) { string InvoiceFileId = invoiceMethods.GetInvoiceDetails(data.InvoiceId).InvoiceFileId; GoogleDriveFilesRepository.DeleteFile(InvoiceFileId); GenerateInvoicePDF(data.vc_invoice_number, data.vc_invoice_date, data.InvoiceId, headerUserId); output.Message = "Invoice payment details saved successfully"; output.Status = true; } else { output.Message = "Something went wrong"; output.Status = false; } } else { output.Message = "Invalid data"; output.Status = false; } } else { output.Message = data.PaymentTypeId != null? (data.Amount != null && data.PaymentTypeId > 0)? httprequest.Files.Count > 0 ? "Please enter comments" : "Please select file" : "Please enter amount" : "Please select payment type"; output.Status = false; } return(Ok(JObject.FromObject(output))); } catch (Exception ex) { output.Status = false; output.Message = ex.Message; return(InternalServerError(ex)); } }