public ActionResult <AddBookResponseModel> AddToBooked([FromBody] AddToBookListInputModel data) { AddBookResponseModel res = new AddBookResponseModel(); try { BookBL bl = new BookBL(DbContext); var temp = bl.Save(data); string configJSON = JsonConvert.SerializeObject(AppSettings.EmailConfig); //start send Email to Admin var bodyAdmin = bl.BuilBookReceiptToAdmin(data); MailMessage message = new MailMessage(); message.To.Add("*****@*****.**"); message.Body = bodyAdmin; message.Subject = "Booking "; message.From = new MailAddress(AppSettings.EmailConfig.FromAddress); message.IsBodyHtml = true; PdfConvertEngine pdfEngine = new PdfConvertEngine(); var pdfPath = pdfEngine.ConvertHTMLToPDF(bodyAdmin, AppSettings.PDFPath, temp.BookNo.Replace('/', '_')); Attachment dataPDF = new Attachment(pdfPath); message.Attachments.Add(dataPDF); EmailSenderEngine emailEngine = new EmailSenderEngine(); emailEngine.SendEmail(message, configJSON); dataPDF.Dispose(); //End send Email to admin //start send Email to Media buyer var bodyBuyer = bl.BuilBookReceiptToMediaBuyer(data); UserRepository userRepo = new UserRepository(DbContext); var mediaBuyerInfo = userRepo.FindByID(data.Data[0].UserID).FirstOrDefault(); message = new MailMessage(); message.To.Add(mediaBuyerInfo.UserName); message.Body = bodyBuyer; message.Subject = "Booking "; message.From = new MailAddress(AppSettings.EmailConfig.FromAddress); message.IsBodyHtml = true; pdfEngine = new PdfConvertEngine(); pdfPath = pdfEngine.ConvertHTMLToPDF(bodyBuyer, AppSettings.PDFPath, temp.BookNo.Replace('/', '_')); dataPDF = new Attachment(pdfPath); message.Attachments.Add(dataPDF); emailEngine = new EmailSenderEngine(); emailEngine.SendEmail(message, configJSON); dataPDF.Dispose(); //End send Email to Media buyer res.data = temp; res.Message = "Success"; res.Response = true; return(Ok(res)); } catch (Exception ex) { res.Message = ex.Message; res.Response = false; return(BadRequest(res)); } }
public IActionResult AddToBooked() { if (HttpContext.Session.GetString(SessionKeyID) != null && HttpContext.Session.GetString(SessionKeyID) != "") { List <ViewResultCartModel> OutPutData = new List <ViewResultCartModel>(); ViewCartInputModel filter = new ViewCartInputModel(); filter.UserID = Guid.Parse(HttpContext.Session.GetString(SessionKeyID)); using (var client = new HttpClient()) { client.BaseAddress = new Uri(BaseAPI + "Site/"); var responseTask = client.PostAsJsonAsync <ViewCartInputModel>("ViewCart", filter); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var content = result.Content.ReadAsStringAsync(); ViewArrayCartResponse resutl = Newtonsoft.Json.JsonConvert.DeserializeObject <ViewArrayCartResponse>(content.Result); OutPutData = resutl.Data; AddToBookListInputModel bookData = new AddToBookListInputModel(); bookData.isFromCart = true; bookData.Data = new List <AddBookInputModel>(); foreach (var book in OutPutData) { AddBookInputModel Data = new AddBookInputModel(); Data.SitePriceID = book.Site.Detail.Item.Price.PriceID; Data.SiteID = book.Site.Detail.Item.SiteID; Data.SiteItemID = book.Site.Detail.Item.SiteItemID; Data.UserID = book.UserID; Data.StartDate = book.StartDate; Data.EndDate = book.EndDate; Data.Qty = book.Qty; Data.Price = book.Price; Data.TotalPerItem = book.TotalHargaPerItem; Data.CartID = book.CartID; bookData.Data.Add(Data); } using (var clientBook = new HttpClient()) { clientBook.BaseAddress = new Uri(BaseAPI + "Site/"); var responseTaskbook = clientBook.PostAsJsonAsync <AddToBookListInputModel>("AddToBooked", bookData); responseTaskbook.Wait(); var resultbook = responseTaskbook.Result; if (resultbook.IsSuccessStatusCode) { return(RedirectToAction("Index", "Booking")); } else //web api sent error response { //log response status here.. ModelState.AddModelError(string.Empty, "Server error. Please contact administrator."); return(RedirectToAction("Keranjang", "Wish")); } } } else //web api sent error response { //log response status here.. ModelState.AddModelError(string.Empty, "Server error. Please contact administrator."); return(RedirectToAction("Keranjang", "Wish")); } } } else { TempData["CustomError"] = "Please login before using the web."; if (HttpContext.Session.GetString(Loginfrom) == "ADM/SPV") { return(RedirectToAction("AdminLogon", "Login")); } else if (HttpContext.Session.GetString(Loginfrom) == "MDO") { return(RedirectToAction("OwnerLogon", "Login")); } else { return(RedirectToAction("BuyerLogon", "Login")); } //return RedirectToAction("Logon", "Login"); } }
public ActionResult AddtoBook(string siteID, string sitePriceID, string siteItemID, string price, string durasi, string totalprice, string startDate, string endDate) { AddBookOutputModel OutPutData = new AddBookOutputModel(); if (HttpContext.Session.GetString(SessionKeyID) != null && HttpContext.Session.GetString(SessionKeyID) != "") { AddToBookListInputModel bookData = new AddToBookListInputModel(); bookData.isFromCart = false; bookData.Data = new List <AddBookInputModel>(); AddBookInputModel Data = new AddBookInputModel(); Data.SitePriceID = Guid.Parse(sitePriceID); Data.SiteID = Guid.Parse(siteID); Data.SiteItemID = Guid.Parse(siteItemID); Data.UserID = Guid.Parse(HttpContext.Session.GetString(SessionKeyID)); Data.StartDate = DateTime.Parse(startDate); Data.EndDate = DateTime.Parse(endDate); Data.Qty = int.Parse(durasi); Data.Price = double.Parse(price); Data.TotalPerItem = double.Parse(totalprice); Data.CartID = Guid.Empty; bookData.Data.Add(Data); JsonConvert.SerializeObject(bookData); CheckDateAvailableInputModel checkDate = new CheckDateAvailableInputModel(); checkDate.SiteID = Guid.Parse(siteID); checkDate.SiteItemID = Guid.Parse(siteItemID); checkDate.StartDate = DateTime.Parse(startDate); checkDate.EndDate = DateTime.Parse(endDate); using (var clientCheck = new HttpClient()) { clientCheck.BaseAddress = new Uri(BaseAPI + "Site/"); //HTTP POST var postTaskCheck = clientCheck.PostAsJsonAsync <CheckDateAvailableInputModel>("CheckAvailableSite", checkDate); postTaskCheck.Wait(); var resultCheck = postTaskCheck.Result; if (resultCheck.IsSuccessStatusCode) { var contentcheck = resultCheck.Content.ReadAsStringAsync(); CheckDateAvailableResponseModel resutlcheck = Newtonsoft.Json.JsonConvert.DeserializeObject <CheckDateAvailableResponseModel>(contentcheck.Result); if (resutlcheck.data.CanBook == true) { using (var client = new HttpClient()) { client.BaseAddress = new Uri(BaseAPI + "Site/"); //HTTP POST var postTask = client.PostAsJsonAsync <AddToBookListInputModel>("AddToBooked", bookData); postTask.Wait(); var result = postTask.Result; if (result.IsSuccessStatusCode) { return(RedirectToAction("Index", "Booking")); //var content = result.Content.ReadAsStringAsync(); //AddBookResponseModel resutl = Newtonsoft.Json.JsonConvert.DeserializeObject<AddBookResponseModel>(content.Result); //OutPutData = resutl.data; } else { TempData["CustomError"] = "Fail to add data. Please contact administrator."; } } } else { TempData["CustomError"] = "Fail to add data, date not available. Please contact administrator."; } } else { TempData["CustomError"] = "Fail to add data. Please contact administrator."; } } return(Json(OutPutData)); } else { TempData["CustomError"] = "Please login before using the web."; if (HttpContext.Session.GetString(Loginfrom) == "ADM/SPV") { return(RedirectToAction("AdminLogon", "Login")); } else if (HttpContext.Session.GetString(Loginfrom) == "MDO") { return(RedirectToAction("OwnerLogon", "Login")); } else { return(RedirectToAction("BuyerLogon", "Login")); } //return RedirectToAction("Logon", "Login"); } }
public IActionResult AddtoBookNew(AddtoCartSite info) { AddBookOutputModel OutPutData = new AddBookOutputModel(); AddToBookListInputModel bookData = new AddToBookListInputModel(); BaseResponseModel resutl = new BaseResponseModel(); bookData.isFromCart = false; bookData.Data = new List <AddBookInputModel>(); AddBookInputModel Data = new AddBookInputModel(); System.TimeSpan diffResult = info.EndDate - info.StartDate; //temp user //Data.UserID = Guid.Parse("8E8C7738-5076-4E04-A1FB-DAD4A7C2AC21"); Data.UserID = Guid.Parse(HttpContext.Session.GetString(SessionKeyID)); //end temp user Data.SiteID = info.SiteID; Data.SiteItemID = info.SiteItemID; Data.SitePriceID = info.SitePriceID; Data.StartDate = info.StartDate; Data.EndDate = info.EndDate; Data.Price = info.Price; Data.TotalPerItem = info.Price * diffResult.Days; Data.Qty = diffResult.Days; bookData.Data.Add(Data); CheckDateAvailableInputModel checkDate = new CheckDateAvailableInputModel(); checkDate.SiteID = info.SiteID; checkDate.SiteItemID = info.SiteItemID; checkDate.StartDate = info.StartDate; checkDate.EndDate = info.EndDate; using (var clientCheck = new HttpClient()) { clientCheck.BaseAddress = new Uri(BaseAPI + "Site/"); //HTTP POST var postTaskCheck = clientCheck.PostAsJsonAsync <CheckDateAvailableInputModel>("CheckAvailableSite", checkDate); postTaskCheck.Wait(); var resultCheck = postTaskCheck.Result; if (resultCheck.IsSuccessStatusCode) { var contentcheck = resultCheck.Content.ReadAsStringAsync(); CheckDateAvailableResponseModel resutlcheck = Newtonsoft.Json.JsonConvert.DeserializeObject <CheckDateAvailableResponseModel>(contentcheck.Result); if (resutlcheck.data.CanBook == true) { using (var client = new HttpClient()) { client.BaseAddress = new Uri(BaseAPI + "Site/"); //HTTP POST var postTask = client.PostAsJsonAsync <AddToBookListInputModel>("AddToBooked", bookData); postTask.Wait(); var result = postTask.Result; if (result.IsSuccessStatusCode) { //return RedirectToAction("Index", "Booking"); resutl.Response = true; resutl.Message = "Booking Successfully."; } else { resutl.Response = false; resutl.Message = "Fail to add data. Please contact administrator."; } } } else { resutl.Response = false; resutl.Message = "Fail to add data, date not available. Please contact administrator."; } } else { resutl.Response = false; resutl.Message = "Fail to add data. Please contact administrator."; } } return(Ok(resutl)); }