// GET: UserAddress public async Task <ActionResult> Index() { var address = await _userAddress.GetAddressAsync(User.Identity.GetUserId()); if (address == null) { UserAddressViewModel addressNotGiven = new UserAddressViewModel { IsAddressGiven = false }; return(View(addressNotGiven)); } UserAddressViewModel addressGiven = new UserAddressViewModel { IsAddressGiven = true, Address1 = address.Address1, Address2 = address.Address2, City = address.City, ZipCode = address.ZipCode, State = address.State, Country = address.Country }; return(View(addressGiven)); }
public IActionResult OnGetLoadDefaultAddress() { //var useraddress = _userAddressRepository.GetByUserId(_userManager.GetUserAsync(HttpContext.User).Result.Id); var address = _addressRepository.GetSome(x => x.CustomerId == _userManager.GetUserAsync(HttpContext.User).Result.Id&& x.IsDeleted == false); var user = _userManager.GetUserAsync(HttpContext.User).Result; if (user != null) { var defaultAddress = _defaultAddressRepository.GetSome(x => x.CustomerId == user.Id && x.IsDeleted == false).FirstOrDefault(); if (defaultAddress != null) { DefaultAddress = new UserAddressViewModel { AddressId = defaultAddress.Address.Id, CustomerId = defaultAddress.Address.CustomerId, PhoneNumber = defaultAddress.Address.PhoneNumber, RecipientName = defaultAddress.Address.RecipientName, Province = defaultAddress.Address.Province, District = defaultAddress.Address.District, Ward = defaultAddress.Address.Ward, Detail = defaultAddress.Address.Detail }; } } return(new OkObjectResult(DefaultAddress)); }
public async Task <IActionResult> EditAddress(int?id, UserAddressViewModel viewModel) { //var user = await _userManager.GetUserAsync(User); viewModel.SelectedAddress = _context.UserAddress.Where(i => i.UserAddressId == id).Select(n => n.Address).FirstOrDefault(); return(View(viewModel)); }
public ActionResult EditAddress(Guid id) { using (ApplicationDbContext db = new ApplicationDbContext()) { UserAddress userAddress = db.UserAddresses.Find(id); if (userAddress == null) { return(HttpNotFound()); } UserAddressViewModel viewModel = new UserAddressViewModel(); viewModel.Id = Guid.NewGuid(); viewModel.FirstName = userAddress.FirstName; viewModel.LastName = userAddress.LastName; viewModel.AddressLine1 = userAddress.AddressLine1; viewModel.AddressLine2 = userAddress.AddressLine2; viewModel.NearestLandMark = userAddress.NearestLandMark; viewModel.Mobile = userAddress.Mobile; viewModel.City = userAddress.City; viewModel.State = userAddress.State; viewModel.Country = userAddress.Country; viewModel.ZipCode = userAddress.ZipCode; viewModel.AddressTitle = userAddress.AddressTitle; viewModel.ApplicationUserId = User.Identity.Name; return(View(viewModel)); } }
public List <UserAddressViewModel> GetAddressList(string userEmail) { List <UserAddressViewModel> addressesList = new List <UserAddressViewModel>(); using (ApplicationDbContext db = new ApplicationDbContext()) { var addresses = db.UserAddresses.Where(a => a.ApplicationUserEmail == userEmail); foreach (var address in addresses) { UserAddressViewModel viewModel = new UserAddressViewModel(); viewModel.Id = address.Id; viewModel.FirstName = address.FirstName; viewModel.LastName = address.LastName; viewModel.AddressLine1 = address.AddressLine1; viewModel.AddressLine2 = address.AddressLine2; viewModel.NearestLandMark = address.NearestLandMark; viewModel.Mobile = address.Mobile; viewModel.City = address.City; viewModel.State = address.State; viewModel.Country = address.Country; viewModel.ZipCode = address.ZipCode; viewModel.AddressTitle = address.AddressTitle; viewModel.ApplicationUserId = userEmail; addressesList.Add(viewModel); } } return(addressesList); }
public async Task <UserAddressViewModel> GetUserAddress(string userId) { var userAddress = await _context.UserAddresses.Where(x => x.UserId == userId).FirstOrDefaultAsync(); UserAddressViewModel userAddressView = _mapper.Map <UserAddressViewModel>(userAddress); return(userAddressView); }
public async Task <IActionResult> EditAddress(UserAddressViewModel model) { if (ModelState.IsValid) { model.UserId = GetUserSession().Id; var apiService = RestServiceExtension <IUserAPI> .For(_enforcerApi.Url, GetUserSession().Token); var result = await apiService.GetAddressByIdUser(model.UserId); var address = GetData <UserAddressViewModel>(result); if (address == null) { var subResult = await apiService.CreateAddress(model); ModelStateMessage <BasicResponse>(subResult); } else { model.Id = address.Id; var subResult = await apiService.UpdateAddress(model); ModelStateMessage <BasicResponse>(subResult); } //var address = apiService.GetAddressByIdUser(model.UserId).Result.Content.Data; //if (address == null) //{ // var resultService = await apiService.CreateAddress(model); // if (resultService.IsSuccessStatusCode) // { // TempDataMessages(new string[] { "Editción Completa." }, TagHelperStatusEnum.Success.ToString()); // } // else // { // var error = JsonConvert.DeserializeObject<BasicResponse<UserViewModel>>(resultService.Error.Content); // TempDataMessages(error.Errors, TagHelperStatusEnum.Error.ToString()); // } //} //else //{ // model.Id = address.Id; // var resultService = await apiService.UpdateAddress(model); // if (resultService.IsSuccessStatusCode) // { // TempDataMessages(new string[] { "Editción Completa." }, TagHelperStatusEnum.Success.ToString()); // } // else // { // var error = JsonConvert.DeserializeObject<BasicResponse<UserViewModel>>(resultService.Error.Content); // TempDataMessages(error.Errors, TagHelperStatusEnum.Error.ToString()); // } //} } return(View()); }
public async Task <ActionResult <UserAddressViewModel> > getUserAddress() { string UserId = "b3601766-eb7e-42dc-8711-1926aa3232d9"; var userAddress = await _context.UserAddresses.Where(x => x.UserId == UserId).FirstOrDefaultAsync(); UserAddressViewModel userAddressView = _mapper.Map <UserAddressViewModel>(userAddress); return(userAddressView); }
public HttpResponseMessage SaveAddress(HttpRequestMessage request, UserAddressViewModel address) { var newAddress = address.ReverseMap(); _studentApi.SaveAddress(newAddress); var response = request.CreateResponse(HttpStatusCode.Created); return(response); }
public HttpResponseMessage GetAddresses(HttpRequestMessage request, int userId) { var addresses = _studentApi.GetAddressofUser(userId); var addressVm = UserAddressViewModel.MapMultipleAddresses(addresses); var response = request.CreateResponse(HttpStatusCode.OK, addressVm); return(response); }
public async Task <IActionResult> DisplayAddress(UserAddressViewModel viewModel) { var user = await _userManager.GetUserAsync(User); UserAddress userAddress = new UserAddress(); userAddress.ApplicationUserId = user.Id; userAddress.Address = viewModel.NewAddress; _context.Add(userAddress); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(DisplayAddress))); }
public ActionResult Register(UserAddressViewModel model) { if (ModelState.IsValid) { var temp = model.user; temp.Password = temp.Password.Encrypt(); temp.Status = StatusTypeUser.Active; temp.Roles = "user"; temp.DateOfBirth = model.user.DateOfBirth.ToMiladiDate(); temp.Addresses.Add(model.address); db.Users.Add(temp); db.SaveChanges(); return(View()); } return(View(model)); }
public async Task <IActionResult> UpdateAddress(UserAddressViewModel _model) { try { if (ModelState.IsValid) { //get userid from access token string userId = User.Claims.First(c => c.Type == "UserID").Value; var user = await _userManager.FindByIdAsync(userId); var userstatus = user.UserStatus; if (user != null && userstatus) { BussinessDetailViewModel _bussinessmodel = new BussinessDetailViewModel(); _bussinessmodel.IdentityId = userId; _bussinessmodel.Address1 = _model.Address1; _bussinessmodel.Address2 = _model.Address2; _bussinessmodel.CountryId = _model.CountryId; _bussinessmodel.StateId = _model.StateId; _bussinessmodel.City = _model.City; _bussinessmodel.Postalcode = _model.Postalcode; bool result = await _bussinessService.UpdateBussinessProfile(_bussinessmodel); if (result) { return(Ok(new { status = StatusCodes.Status200OK, success = true, message = "address" + ResponseMessages.msgUpdationSuccess, userstatus })); } else { return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgDbConnectionError, userstatus = false })); } } else { return(Ok(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false })); } } else { return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgParametersNotCorrect, userstatus = false })); } } catch (Exception ex) { return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false })); } }
public async Task <ActionResult> AddOrderWithAddress(UserAddressViewModel userAddressViewModel) { string UserId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; string orderSummaryId = string.Empty; try { string userTableName = await _singleton.userRepository.GetUserOrdersTableName(UserId); await _singleton.userRepository.AddOrderWithAddress(userAddressViewModel, UserId, userTableName, out orderSummaryId); } catch (DbUpdateException e) { throw; } return(Ok(new { orderSummaryId })); }
public async Task <IActionResult> DisplayAddress() { var user = await _userManager.GetUserAsync(User); var address = _context.UserAddress.Where(i => i.ApplicationUserId == user.Id).ToList(); var model = new UserAddressViewModel { UserAddressList = address //Username = user.UserName, //Email = user.Email, //PhoneNumber = user.PhoneNumber, //IsEmailConfirmed = user.EmailConfirmed, //StatusMessage = StatusMessage }; return(View(model)); }
public async Task <IActionResult> EditAddress(int id, UserAddressViewModel viewModel) { var userAddress = _context.UserAddress.Where(i => i.UserAddressId == id).FirstOrDefault(); //if (userAddress == null) //{ // throw new ApplicationException($"Address cannot be empty."); //} //else //{ userAddress.Address = viewModel.SelectedAddress; _context.Update(userAddress); await _context.SaveChangesAsync(); //} return(RedirectToAction(nameof(DisplayAddress))); }
public async Task <ActionResult> EditUserAddress(UserAddressViewModel model) { if (ModelState.IsValid) { var userToEdit = new UserAddressDTO { UserAddressId = User.Identity.GetUserId(), Address1 = model.Address1, Address2 = model.Address2, City = model.City, ZipCode = model.ZipCode, State = model.State, Country = model.Country }; await _userAddress.UpdateAdressAsync(userToEdit); return(RedirectToAction("Index", "UserAddress")); } return(View()); }
public async Task <JsonResult> ShowUserAddress() { try { //to get userid from access token string Id = User.Claims.First(c => c.Type == "UserID").Value; UserAddressViewModel _userDetails = new UserAddressViewModel(); var user = await _userManager.FindByIdAsync(Id); var userstatus = user.UserStatus; if (user != null) { var bussiness = new BussinessDetailViewModel(); if (User.IsInRole(Constants.isSubAdmin)) { //get bussiness details of parent admin if role is subadmin bussiness = await _bussinessService.GetBussinessDetailsById(user.ParentUserId); } else { //get bussiness details of admin by id bussiness = await _bussinessService.GetBussinessDetailsById(user.Id); } _userDetails.Address1 = (!string.IsNullOrEmpty(bussiness.Address1))? bussiness.Address1 :""; _userDetails.Address2 = (!string.IsNullOrEmpty(bussiness.Address2)) ? bussiness.Address2 : ""; _userDetails.CountryId = bussiness.CountryId; _userDetails.CountryName = (!string.IsNullOrEmpty(bussiness.CountryName)) ? bussiness.CountryName : ""; _userDetails.StateId = bussiness.StateId; _userDetails.StateName = (!string.IsNullOrEmpty(bussiness.StateName)) ? bussiness.StateName : ""; _userDetails.City = (!string.IsNullOrEmpty(bussiness.City)) ? bussiness.City : ""; _userDetails.Postalcode = (!string.IsNullOrEmpty(bussiness.Postalcode)) ? bussiness.Postalcode : ""; return(new JsonResult(new { status = StatusCodes.Status200OK, success = true, message = "user address" + ResponseMessages.msgShownSuccess, userstatus, user_info = _userDetails })); } return(new JsonResult(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgNotFound + "user address.", userstatus = false })); } catch (Exception ex) { return(new JsonResult(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false })); } }
public IActionResult OnGetLoadAddress(int?availableAddressId) { //var useraddress = _userAddressRepository.GetByUserId(_userManager.GetUserAsync(HttpContext.User).Result.Id); var customer = _userManager.GetUserAsync(HttpContext.User).Result; if (customer != null) { //var defaultAddress = _defaultAddressRepository.GetSome(x => x.CustomerId == customer.Id); var address = _addressRepository.GetSome(x => x.CustomerId == customer.Id && x.IsDeleted == false && x.ShowRoomAddressId == null); if (address != null && address.Count() > 0) { UserAddresses = new List <UserAddressViewModel>(); foreach (var item in address) { var userAddress = new UserAddressViewModel { AddressId = item.Id, CustomerId = item.CustomerId, PhoneNumber = item.PhoneNumber, RecipientName = item.RecipientName, Province = item.Province, District = item.District, Ward = item.Ward, Detail = item.Detail, DefaultChecked = availableAddressId != null && availableAddressId > 0 && availableAddressId == item.Id ? "checked" : "" //DefaultChecked = item.Id == defaultAddress?.First().AddressId ? "checked" : "" }; //if (defaultAddress != null) //{ // if (userAddress.AddressId == defaultAddress.AddressId) // { // userAddress.DefaultChecked = "checked"; // } //} UserAddresses.Add(userAddress); } } } return(new OkObjectResult(UserAddresses)); }
public async Task <ActionResult> AddNewAddress(UserAddressViewModel viewModel) { if (!ModelState.IsValid) { return(View(viewModel)); } try { ApplicationUser user = await UserManager.FindByEmailAsync(User.Identity.Name); using (ApplicationDbContext db = new ApplicationDbContext()) { UserAddress userAddress = new UserAddress(); userAddress.Id = Guid.NewGuid(); userAddress.FirstName = viewModel.FirstName; userAddress.LastName = viewModel.LastName; userAddress.Company = viewModel.Company; userAddress.AddressLine1 = viewModel.AddressLine1; userAddress.AddressLine2 = viewModel.AddressLine2; userAddress.NearestLandMark = viewModel.NearestLandMark; userAddress.Mobile = viewModel.Mobile; userAddress.City = viewModel.City; userAddress.State = viewModel.State; userAddress.Country = viewModel.Country; userAddress.ZipCode = viewModel.ZipCode; userAddress.AddressTitle = viewModel.AddressTitle; userAddress.ApplicationUserEmail = User.Identity.Name; db.UserAddresses.Add(userAddress); db.SaveChanges(); return(RedirectToAction("MyAddress")); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } return(View(viewModel)); }
public IActionResult OnPostSaveAddress([FromBody] UserAddressViewModel model) { if (!ModelState.IsValid) { IEnumerable <ModelError> allErrors = ModelState.Values.SelectMany(v => v.Errors); return(new BadRequestObjectResult(allErrors)); } var user = _userManager.GetUserAsync(HttpContext.User).Result; if (model.AddressId > 0) { var existAddress = _addressRepository.Find(model.AddressId); existAddress.PhoneNumber = model.PhoneNumber; existAddress.RecipientName = model.RecipientName; existAddress.Ward = model.Ward; existAddress.District = model.District; existAddress.Province = model.Province; existAddress.Detail = model.Detail; existAddress.DateModified = DateTime.Now; _addressRepository.Update(existAddress); return(new OkObjectResult(existAddress)); } var newAddress = new Address { PhoneNumber = model.PhoneNumber, RecipientName = model.RecipientName, Ward = model.Ward, District = model.District, Province = model.Province, Detail = model.Detail, DateCreated = DateTime.Now, DateModified = DateTime.Now, CustomerId = _userManager.GetUserAsync(HttpContext.User).Result.Id }; _addressRepository.Add(newAddress); return(new OkObjectResult(newAddress)); }
public IActionResult SignUp(UserAddressViewModel modelData) { if (ModelState.IsValid) { User user = DBContext.Users.FirstOrDefault(u => u.Email == modelData.NewUser.Email); if (user != null) { ModelState.AddModelError("NewUser.Email", "There is already an account linked to this email."); return(View()); } DBContext.Addresses.Add(modelData.Address); DBContext.SaveChanges(); user = modelData.NewUser; user.AddressID = DBContext.Addresses.LastOrDefault().AddressID; PasswordHasher <User> hasher = new PasswordHasher <User>(); user.Password = hasher.HashPassword(user, user.Password); DBContext.Users.Add(user); DBContext.SaveChanges(); user = DBContext.Users.FirstOrDefault(u => u.Email == user.Email); HttpContext.Session.SetInt32("UserID", user.UserID); HttpContext.Session.SetInt32("LoggedIn", 1); return(RedirectToAction("Profile", "Home")); } string validationErrors = string.Join(",", ModelState.Values.Where(E => E.Errors.Count > 0) .SelectMany(E => E.Errors) .Select(E => E.ErrorMessage) .ToArray()); Console.WriteLine($"********** {ModelState.ErrorCount} **********"); Console.WriteLine($"********** {validationErrors} **********"); return(View()); }
public HttpResponseMessage SaveSponsor(HttpRequestMessage request, SponsorViewModel sponsor) { if (!ModelState.IsValid) { } _sponsorApi.SaveSponsor(sponsor.ReverseMap()); int userId = sponsor.ID; string[] location = sponsor.Location.Split(','); var address = new UserAddressViewModel(); address.BursifyUserId = userId; address.City = location[1]; address.Province = location[0]; address.AddressType = "Company"; _studentApi.SaveAddress(address.ReverseMap()); var response = request.CreateResponse(HttpStatusCode.Created); return(response); }
/// <summary> /// Save User Details /// </summary> /// <param name="userViewModel"></param> /// <param name="userAddressViewModel"></param> /// <returns></returns> public IResult SaveUserDetails(UserViewModel userViewModel, UserAddressViewModel userAddressViewModel) { userViewModel.UserId = null; var result = new Result { Operation = Operation.Create, Status = Status.Success }; try { UserDetailForOrder userDetail = null; User user = null; UserAddress userAddress = null; if (userViewModel != null) { user = _userRepository.GetOne(x => x.MailId.Equals(userViewModel.MailId) || x.MobNo.Equals(userViewModel.MobNo)); if (user == null) { user = new User(); user.MapFromViewModel(userViewModel); user.UserAddress = new List <UserAddress>(); _userRepository.InsertOne(user); } else { var updateDefinition = Builders <User> .Update .Set(x => x.Name, userViewModel.Name) .Set(x => x.MobNo, userViewModel.MobNo) .Set(x => x.MailId, userViewModel.MailId); _userRepository.UpdateOne(t => t.UserId == user.UserId, updateDefinition); } userDetail.UserId = user.UserId.ToString(); userDetail.MailId = user.MailId; userDetail.MobNo = user.MobNo; if (userAddressViewModel != null) { if (string.IsNullOrEmpty(userAddressViewModel.AddressId)) { userAddress = new UserAddress(); userAddress.MapFromViewModel(userAddressViewModel); userAddress.AddressId = ObjectId.GenerateNewId(); userDetail.AddressId = userAddress.AddressId.ToString(); var updateDefinition = Builders <User> .Update.AddToSet(x => x.UserAddress, userAddress); _userRepository.UpdateOne(t => t.UserId == user.UserId, updateDefinition); } else { userDetail.AddressId = userAddressViewModel.AddressId.ToString(); } } result.Body = userDetail; result.Message = UserNotification.Saved; } else { result.Message = UserNotification.UserDetailsNotProvided; } } catch (Exception e) { result.Message = e.Message; result.Status = Status.Fail; } return(result); }
public async Task <IActionResult> DeleteAddress(int?id, UserAddressViewModel viewModel) { viewModel.SelectedAddress = _context.UserAddress.Where(i => i.UserAddressId == id).Select(n => n.Address).FirstOrDefault(); return(View(viewModel)); }
public async Task <ActionResult> AddOrderWithAddress(UserAddressViewModel userAddressViewModel) { string UserId = "b3601766-eb7e-42dc-8711-1926aa3232d9"; OrderSummary orderSummary = new OrderSummary(); try { decimal TotalSellingPrice = 0; string ipAddress = ""; if (Dns.GetHostAddresses(Dns.GetHostName()).Length > 0) { ipAddress = Dns.GetHostAddresses(Dns.GetHostName())[0].ToString(); } orderSummary.IP = ipAddress; orderSummary.Id = Guid.NewGuid().ToString(); orderSummary.UpdatedDateTime = DateTime.Now; orderSummary.CreatedDateTime = DateTime.Now; orderSummary.OrderStatus = "Completed"; orderSummary.UserId = UserId; orderSummary.InvoiceNo = "PK" + (_context.OrderSummaries.Count() + 1).ToString("000000"); //Add or Update userAddress var updateUserAddress = _context.UserAddresses.Where(x => x.UserId == UserId).FirstOrDefault(); UserAddress userAddress = _mapper.Map <UserAddress>(userAddressViewModel); userAddress.UserId = UserId; if (updateUserAddress != null) { var updatedEntity = _mapper.Map(userAddressViewModel, updateUserAddress); updatedEntity.Id = updateUserAddress.Id; updatedEntity.UserId = UserId; userAddress.Id = updateUserAddress.Id; var entity = _context.Update(updatedEntity); } else { userAddress.Id = Guid.NewGuid().ToString(); _context.UserAddresses.Add(userAddress); } orderSummary.UserAddressId = userAddress.Id; List <string> ppid = new List <string>(); ppid = userAddressViewModel.cartIds.Select(x => x.id).ToList(); var result = await _context.ProductPrices.Where(x => ppid.Contains(x.Id) && x.IsActive == true).Include(p => p.Product).Include(p => p.Unit).ToListAsync(); List <Order> orders = new List <Order>(); foreach (var item in result) { var quantity = userAddressViewModel.cartIds.Where(x => x.id == item.Id).FirstOrDefault(); Order order = new Order(); order = _mapper.Map <Order>(item); order.ProductPriceId = order.Id; order.ProductId = item.ProductId; order.Quantity = quantity.count; order.Id = Guid.NewGuid().ToString(); order.OrderSummaryId = orderSummary.Id; orderSummary.TotalAmount = Convert.ToDecimal(orderSummary.TotalAmount) + item.SellingPrice * Convert.ToInt32(quantity.count); TotalSellingPrice = Convert.ToDecimal(TotalSellingPrice) + item.MRPPrice * Convert.ToInt32(quantity.count); orders.Add(order); } orderSummary.Discount = TotalSellingPrice - orderSummary.TotalAmount; orderSummary.Delivery = 10; _context.OrderSummaries.Add(orderSummary); _context.Orders.AddRange(orders); await _context.SaveChangesAsync(); } catch (DbUpdateException e) { throw; } return(Ok(new { orderSummary.Id })); }
public Task <bool> AddOrderWithAddress(UserAddressViewModel userAddressViewModel, string userId, string userTableName, out string orderSummaryId) { string ipAddress = ""; if (Dns.GetHostAddresses(Dns.GetHostName()).Length > 0) { ipAddress = Dns.GetHostAddresses(Dns.GetHostName())[0].ToString(); } var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; #region Add or Update userAddress var updateUserAddress = _context.UserAddresses.Where(x => x.UserId == userId).FirstOrDefault(); UserAddress userAddress = _mapper.Map <UserAddress>(userAddressViewModel); userAddress.UserId = userId; if (updateUserAddress != null) { var updatedEntity = _mapper.Map(userAddressViewModel, updateUserAddress); updatedEntity.UserId = userId; userAddress.Id = updateUserAddress.Id; var entity = _context.Update(updatedEntity); } else { userAddress.Id = Guid.NewGuid().ToString(); _context.UserAddresses.Add(userAddress); } #endregion AddressViewModel userAddressModel = _mapper.Map <AddressViewModel>(userAddress); OrderSummary orderSummary = new OrderSummary() { IP = ipAddress, Id = Guid.NewGuid().ToString(), UpdatedDateTime = DateTime.Now, CreatedDateTime = DateTime.Now, OrderStatusId = (int)EnumOrderStatus.UnderPreparing, UserId = userId, InvoiceNo = "IN" + (_context.OrderSummaries.Count() + 1).ToString("000000"), UserAddressDetails = Newtonsoft.Json.JsonConvert.SerializeObject(userAddressModel, jsonSerializerSettings), IsActive = true, PromoCode = "", ModifyBy = userId, PaymentStatus = "", ShopId = userAddressViewModel.CartProducts[0].ShopId }; if (userAddressViewModel.CartProducts.Length > 0) { StringBuilder stringBuilder = new StringBuilder(); foreach (var item in userAddressViewModel.CartProducts) { stringBuilder.Append("'"); stringBuilder.Append(item.ProductId); stringBuilder.Append("',"); } stringBuilder.Remove(stringBuilder.Length - 1, 1); string whereClose = $" where v.IsActive = true and v.IsOutStock= false and v.id in({stringBuilder})"; var shop = _context.Shops.Where(x => x.Id == userAddressViewModel.CartProducts[0].ShopId).FirstOrDefault(); if (shop == null) { orderSummaryId = ""; return(null); } AddressViewModel shopAddressModel = _mapper.Map <AddressViewModel>(shop); var shopAddressJson = Newtonsoft.Json.JsonConvert.SerializeObject(shopAddressModel, jsonSerializerSettings); var result = _context.VendorProducts.FromSqlRaw($"select v.Id,v.IsOutStock,v.ProductId,v.ProductName,v.ProductUrl,v.Selling,v.MRP,v.Discount,u.UnitType,v.Description, '{shop.CurrencyType}' as CurrencyType " + $"from VendorProduct.Vendor{shop.tableName}Products v join Unit u on v.UnitId = u.Id {whereClose};") .Select(x => new VendorProductViewModel { Id = x.Id, ProductId = x.ProductId, ProductName = x.ProductName, Description = x.Description, Discount = x.Discount, IsOutStock = x.IsOutStock, MRP = x.MRP, ProductUrl = _documentStorage.GetProductThumbnailUri(x.ProductUrl).Result, Selling = x.Selling, UnitType = x.UnitType, CurrencyType = x.CurrencyType }).AsQueryable().ToList(); var products = (from x in result join p in userAddressViewModel.CartProducts on x.Id equals p.ProductId select new VendorProductViewModel { ProductName = x.ProductName, Description = x.Description, Discount = x.Discount, IsOutStock = x.IsOutStock, MRP = x.MRP, ProductUrl = x.ProductUrl, Selling = x.Selling, UnitType = x.UnitType, ItemCount = p.ItemCount, SubTotalOnSelling = p.ItemCount * x.Selling, SubTotalOnMRP = p.ItemCount * x.MRP, CurrencyType = x.CurrencyType }).ToList(); orderSummary.OrdersDetails = Newtonsoft.Json.JsonConvert.SerializeObject(products, jsonSerializerSettings); orderSummary.DeliveryCost = shop.DeliveryCost == null?0:shop.DeliveryCost; orderSummary.Discount = products.Sum(x => x.SubTotalOnMRP) - products.Sum(x => x.SubTotalOnSelling); orderSummary.TotalAmount = products.Sum(x => x.SubTotalOnSelling); orderSummary.ItemCount = products.Sum(x => x.ItemCount.Value); orderSummary.CurrencyType = shop.CurrencyType; orderSummary.ShopId = shop.Id; orderSummary.OrderStatusId = shop.IsPriceVisible == false ? (int)EnumOrderStatus.PriceHiddenByShopper : (int)EnumOrderStatus.UnderPreparing; orderSummary.ShopAddressDetails = shopAddressJson; using (var scope = _context.Database.BeginTransaction()) { try { var vendorOrder = $"insert into VendorOrder.Vendor{shop.tableName}Orders(Id,IP,IsActive,CreatedDateTime,UpdatedDateTime,ModifyBy,OrderStatusId,ItemCount,DeliveryCost,TotalAmount," + $"Discount,PromoCode,DeliveryStatus,DeliveryDate,InvoiceNo,PaymentStatus,UserId,UserAddressDetails,ShopAddressDetails,OrdersDetails,CurrencyType,ShopId)" + $" values('{orderSummary.Id}','{orderSummary.IP}','{orderSummary.IsActive}','{orderSummary.CreatedDateTime}','{orderSummary.UpdatedDateTime}','{orderSummary.ModifyBy}','{orderSummary.OrderStatusId}',{orderSummary.ItemCount},{orderSummary.DeliveryCost},{orderSummary.TotalAmount}," + $"{orderSummary.Discount},'{orderSummary.PromoCode}','{orderSummary.DeliveryStatus}',null,'{orderSummary.InvoiceNo}','{orderSummary.PaymentStatus}','{orderSummary.UserId}','{orderSummary.UserAddressDetails}','{shopAddressJson}','{orderSummary.OrdersDetails}','{shop.CurrencyType}','{shop.Id}')"; var userOrder = $"insert into UserOrders.User{userTableName}Orders(Id,IP,IsActive,CreatedDateTime,UpdatedDateTime,ModifyBy,OrderStatusId,ItemCount,DeliveryCost,TotalAmount," + $"Discount,PromoCode,DeliveryStatus,DeliveryDate,InvoiceNo,PaymentStatus,UserId,UserAddressDetails,ShopAddressDetails,OrdersDetails,CurrencyType,ShopId)" + $" values('{orderSummary.Id}','{orderSummary.IP}','{orderSummary.IsActive}','{orderSummary.CreatedDateTime}','{orderSummary.UpdatedDateTime}','{orderSummary.ModifyBy}','{orderSummary.OrderStatusId}',{orderSummary.ItemCount},{orderSummary.DeliveryCost},{orderSummary.TotalAmount}," + $"{orderSummary.Discount},'{orderSummary.PromoCode}','{orderSummary.DeliveryStatus}',null,'{orderSummary.InvoiceNo}','{orderSummary.PaymentStatus}','{orderSummary.UserId}','{orderSummary.UserAddressDetails}','{shopAddressJson}','{orderSummary.OrdersDetails}',N'{shop.CurrencyType}','{shop.Id}')"; using (var command = _context.Database.GetDbConnection().CreateCommand()) { command.CommandText = vendorOrder + ";" + userOrder; _context.Database.OpenConnection(); command.Transaction = _context.Database.CurrentTransaction.GetDbTransaction(); command.ExecuteNonQuery(); } _context.OrderSummaries.Add(orderSummary); _context.SaveChanges(); scope.Commit(); } catch (Exception ex) { scope.Rollback(); throw; int?i; } } //var myDictionary = new Dictionary<string, Func<DbContext, IQueryable>>() // { // { "TblStudents", ( DbContext context ) => context.Set<OrderSummary>() } // }; //var dbSet = myDictionary["TblStudents"].Invoke(_context); } orderSummaryId = orderSummary.Id; return(Task.FromResult(true)); }