public ActionResult NextStep(HourlyWorkersViewModel model, string BtnPrevious, string BtnNext) { HourlyWorkersViewModel details = GetContactDetails(); if (IsNotValidDetails) { return(RedirectToAction("Create")); } if (BtnPrevious != null) { return(View("ConfirmTimeTable", details)); } if (BtnNext != null) { details.Longitude = model.Longitude; details.Latitude = model.Latitude; details.AddressNotes = model.AddressNotes; details.HouseType = model.HouseType; details.HouseNo = model.HouseNo; details.FloorNo = model.FloorNo; details.PartmentNo = model.PartmentNo; Session["HourlyWorkers"] = details; return(View("Finish", details)); } return(View("PickLocation", details)); }
private HourlyWorkersViewModel GetContactDetails(string promotionCode = null) { if (Session["HourlyWorkers"] == null) { var model = new HourlyWorkersViewModel(); model.PromotionCode = promotionCode; Session["HourlyWorkers"] = model; } return((HourlyWorkersViewModel)Session["HourlyWorkers"]); }
public async Task <ActionResult> Create(HourlyWorkersViewModel model, string BtnNext) { if (BtnNext == null) { return(View(model)); } if (!ModelState.IsValid) { return(View(model)); } HourlyWorkersViewModel details = GetContactDetails(); details.CityId = model.CityId; details.DistrictId = model.DistrictId; details.NumOfWorkers = model.NumOfWorkers; details.NumOfVisits = model.NumOfVisits; details.NumOfHours = model.NumOfHours; details.AvailableDays = model.AvailableDays; details.StartDay = model.StartDay; details.ContractDuration = model.ContractDuration; details.Nationality = model.Nationality; details.HourlypricingId = model.HourlypricingId; details.IsMorningShift = model.IsMorningShift; details.AgreedToTerms = model.AgreedToTerms; details.CityName = model.CityName; details.DistrictName = model.DistrictName; details.NationalityName = model.NationalityName; details.NumOfVisitsWritten = model.NumOfVisitsWritten; details.ContractDurationWritten = model.ContractDurationWritten; details.TotalPrice = model.TotalPrice; details.TotalBeforeDiscount = model.TotalBeforeDiscount; details.Discount = model.Discount; details.VatRate = model.VatRate; details.VatAmount = model.VatAmount; details.TotalPriceWithVat = model.TotalPriceWithVat; details.PromotionCode = model.PromotionCode; details.TotalPriceAfterPromotion = model.TotalPriceAfterPromotion; details.TotalPromotionDiscountAmount = model.TotalPromotionDiscountAmount; details.PromotionExtraVisits = model.PromotionExtraVisits; details.PromotionName = model.PromotionName; details = await SetTimeTable(details); Session["HourlyWorkers"] = details; return(View("ConfirmTimeTable", details)); }
public async Task <ActionResult> Create(string promotionCode = null) { var currentUser = UserManager.FindById(User.Identity.GetUserId()); var data = await GetResourceAsync <dynamic>("api/HourlyContract/GetLatestNotPaidContract/" + currentUser.CrmUserId); if (string.IsNullOrEmpty(data)) { HourlyWorkersViewModel model = GetContactDetails(promotionCode); ViewBag.MorningOffset = ConfigurationSettings.AppSettings["MorningOffset"]; ViewBag.EveningOffset = ConfigurationSettings.AppSettings["EveningOffset"]; return(View(model)); } else { return(RedirectToAction("Details", "HourlyWorkers", new { id = data })); } }
public ActionResult Next(HourlyWorkersViewModel model, string BtnPrevious, string BtnNext) { HourlyWorkersViewModel details = GetContactDetails(); if (IsNotValidDetails) { return(RedirectToAction("Create")); } if (BtnPrevious != null) { ModelState.Clear(); return(View("Create", details)); } if (BtnNext != null) { return(View("PickLocation", details)); } return(View("ConfirmTimeTable", details)); }
public async Task <ActionResult> Finish(string BtnPrevious, string BtnNext) { HourlyWorkersViewModel details = GetContactDetails(); if (IsNotValidDetails) { return(RedirectToAction("Create")); } if (BtnPrevious != null) { return(View("PickLocation", details)); } if (!await IsProfileCompleted()) { return(RedirectToAction("CompleteProfile", "Account", new { returnUrl = Url.Action("Finish", "HourlyWorkers") })); } var currentUser = UserManager.FindById(User.Identity.GetUserId()); var data = new ContractViewModel(details); data.CustomerId = currentUser.CrmUserId; var newContract = await PostResourceAsync <ContractViewModel>("api/HourlyContract", data); if (newContract.StatusCode == HttpStatusCode.OK) { data.ContractId = newContract.Result.ContractId; data.ContractNum = newContract.Result.ContractNum; data.PriceBeforeDiscount = (Session["HourlyWorkers"] as HourlyWorkersViewModel).TotalBeforeDiscount; data.FinalPrice = newContract.Result.FinalPrice; data.VatRate = Math.Round((decimal.Parse(data.FinalPrice) - decimal.Parse(data.PriceBeforeDiscount)) / decimal.Parse(data.PriceBeforeDiscount), 2).ToString(); data.VatAmount = Math.Round((decimal.Parse(data.FinalPrice) - decimal.Parse(data.PriceBeforeDiscount))).ToString(); Session["ContractToPayData"] = data; RemoveContactDetails(); return(View("Success", newContract.Result)); } return(View("Error", details)); }
private async Task <HourlyWorkersViewModel> SetTimeTable(HourlyWorkersViewModel details) { if (details == null) { return(new HourlyWorkersViewModel()); } string link = string.Format("api/HourlyPricing/ContractDays?ContractStartDate={0}&NoOfMonths={1}&Days={2}&hours={3}&shift={4}", details.StartDay, details.ContractDuration + details.PromotionExtraVisits, string.Join(",", details.AvailableDays), details.NumOfHours, details.IsMorningShift); JArray data = await GetResourceAsync <dynamic>(link); var t = data.ToObject <string[]>(); //if (result != null) //{ // data = JsonConvert.DeserializeObject<string[]>(result); //} details.ConfirmTimeTableList = t.ToList(); return(details); }