Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
        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));
            }
        }
Exemplo n.º 3
0
        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));
            }
        }