//add membership public Customer AddCustomer(Customer customer) { try { customer.Code = Guid.NewGuid().ToString(); customer.Member_Id = _context.Customer.Where(x => x.Is_Member == true && x.Member_Id != null).Select(x => x.Member_Id).DefaultIfEmpty(0).Max() + 1; Store store = JsonConvert.DeserializeObject <Store>(HttpContext.Session.GetString("Store")); customer.Membership_Number = store.INITIAL + "-" + Convert.ToInt32(customer.Member_Id).ToString("000000"); customer.Created_By = User.Identity.Name; customer.Registration_Date = DateTime.Now; customer.MembershipDiscGroup = "CATEGORY D"; customer.CustomerPriceGroup = "RSP"; customer.CustomerDiscGroup = "RSP"; _context.Add(customer); _context.SaveChanges(); NavPostData navPost = new NavPostData(_context, _mapper); BackgroundJob.Enqueue(() => navPost.PostCustomer()); return(customer); } catch (Exception ex) { if (ex.InnerException.Message.Contains("idx_unique_member_id")) { return(AddCustomer(customer)); } else { return(new Customer()); } } }
public IActionResult PostCustomerToNAV() { NavPostData sync = new NavPostData(_context, _mapper); BackgroundJob.Enqueue(() => sync.PostCustomer()); var data = new { Status = 200, Message = "Success" }; return(Ok(data)); }
public IActionResult PostUnSyncInvoiceToNav() { NavPostData sync = new NavPostData(_context, _mapper); Store store = JsonConvert.DeserializeObject <Store>(HttpContext.Session.GetString("Store")); //sync.PostSalesInvoice(store); //sync.PostSalesInvoice(store); BackgroundJob.Enqueue(() => sync.PostCustomer()); BackgroundJob.Enqueue(() => sync.PostUnSyncInvoie(store)); // BackgroundJob.Enqueue(() => Console.WriteLine("test from background")); var data = new { Status = 200, Message = "Success" }; return(Ok(data)); }
public IActionResult CreateMembership([FromBody] Customer customer) { if (ModelState.IsValid) { try { customer.Code = Guid.NewGuid().ToString(); customer.Is_Member = true; customer.Member_Id = _context.Customer.Where(x => x.Is_Member == true && x.Member_Id != null).Select(x => x.Member_Id).DefaultIfEmpty(0).Max() + 1; Store store = JsonConvert.DeserializeObject <Store>(HttpContext.Session.GetString("Store")); customer.Membership_Number = store.INITIAL + "-" + Convert.ToInt32(customer.Member_Id).ToString("000000"); //check number series already Customer isCustomerExist = _context.Customer.FirstOrDefault(x => x.Membership_Number == customer.Membership_Number); if (isCustomerExist != null) { if (isCustomerExist.Member_Id != customer.Member_Id) { isCustomerExist.Member_Id = customer.Member_Id; _context.Entry(isCustomerExist).State = EntityState.Modified; _context.SaveChanges(); } return(CreateMembership(customer)); } customer.Created_By = User.Identity.Name; customer.Registration_Date = DateTime.Now; customer.CustomerDiscGroup = "RSP"; customer.CustomerPriceGroup = "RSP"; customer.MembershipDiscGroup = "CATEGORY D"; _context.Add(customer); _context.SaveChanges(); //update cache IList <CustomerViewModel> customers; if (!_cache.TryGetValue("Customers", out customers)) { // Key not in cache, so get data. customers = _context.Customer .Select(x => new CustomerViewModel { Address = x.Address, Barcode = x.Barcode, Code = x.Code, CustomerDiscGroup = x.CustomerDiscGroup, CustomerPriceGroup = x.CustomerPriceGroup, Is_Member = x.Is_Member, Is_Sale_Refused = x.Is_Sale_Refused, MembershipDiscGroup = x.MembershipDiscGroup, Membership_Number = x.Membership_Number, Membership_Number_Old = x.Membership_Number_Old, Member_Id = x.Member_Id, Mobile1 = x.Mobile1, Name = x.Name, Type = x.Type, Vat = x.Vat }).ToList(); } customers.Add(new CustomerViewModel() { Address = customer.Address, Barcode = customer.Barcode, Code = customer.Code, CustomerDiscGroup = customer.CustomerDiscGroup, CustomerPriceGroup = customer.CustomerPriceGroup, Is_Member = customer.Is_Member, Is_Sale_Refused = customer.Is_Sale_Refused, MembershipDiscGroup = customer.MembershipDiscGroup, Membership_Number = customer.Membership_Number, Membership_Number_Old = customer.Membership_Number_Old, Member_Id = customer.Member_Id, Mobile1 = customer.Mobile1, Name = customer.Name, Type = customer.Type, Vat = customer.Vat }); _cache.Set("Customer", customers); NavPostData navPost = new NavPostData(_context, _mapper); BackgroundJob.Enqueue(() => navPost.PostCustomer()); return(Ok(new { StatusMessage = "Membership Created Successfully !!", Membership = customer })); } catch (Exception ex) { if (ex.Message.Contains("'UniqueMobileNumber") || ex.InnerException.Message.Contains("UniqueMobileNumber")) { return(StatusCode(409, new { StatusMessage = "Mobile Number Already Register !!" })); } else if (ex.Message.Contains("idx_unique_member_id") || ex.InnerException.Message.Contains("idx_unique_member_id") && ex.Message.Contains("duplicate") || ex.InnerException.Message.Contains("duplicate")) { return(CreateMembership(customer)); } else { return(StatusCode(500, new { StatusMessage = ex.Message })); } //TempData["StatusMessage"] = "Customer Created Successfully !!"; } } return(StatusCode(400, new { StatusMessage = "Not Valid" })); }