public ActionResult Signup(SignupViewModel newSignupUser) { SetSessionVariables(); //ViewBag.IsBooking = HttpContext.Request.Query["IsBooking"]; //bool IsBooking = Convert.ToBoolean(ViewBag.IsBooking); if (newSignupUser.IsBooking) { newSignupUser.signupUser.IsClient = false; } else { newSignupUser.signupUser.IsClient = true; } if (!newSignupUser.IsBooking) { newSignupUser.signupUser.IsActive = true; using (var client = new HttpClient()) { client.BaseAddress = new Uri(Common.Instance.ApiUserLoginUserLoginControllerName); //HTTP POST var postTask = client.PostAsJsonAsync <SignupUser>(Common.Instance.ApiUserLoginSignupUser, newSignupUser.signupUser); postTask.Wait(); var result = postTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <UserLogin>(); readTask.Wait(); UserLogin login = readTask.Result; if (login != null) { AssignSessionVariables(login); SetSessionVariables(); return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError(string.Empty, "Username already exist"); return(View("Signup", newSignupUser)); } } } } else { if (newSignupUser != null) { MemberMaster NewMember = new MemberMaster(); UserLogin NewUserLogin = new UserLogin(); if (ApplicationState.Instance.CartSpaces.Count() > 0) { using (var client = new HttpClient()) { WorkspaceDetailViewModel vModel = new WorkspaceDetailViewModel(); client.BaseAddress = new Uri(Common.Instance.ApiClientControllerName); var responseTask = client.GetAsync(Common.Instance.ApiClientGetWorkSpaceDetails + ApplicationState.Instance.CartSpaces[0].ClientSpaceFloorPlanID.ToString()); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <WorkSpaceDetailsResponse>(); readTask.Wait(); vModel.WorkSpaceDetails = readTask.Result; } //ApplicationState.Instance.CartSpaces[0].ClientSpaceFloorPlanID NewMember.ClientID = vModel.WorkSpaceDetails.selectedSpace.ClientID; NewMember.MemberStatus = true; //NewMember.MemberName = newSignupUser.signupUser.Username; NewMember.MemberName = newSignupUser.signupUser.Firstname + " " + newSignupUser.signupUser.Lastname; NewMember.CreatedBy = 1; NewMember.CreatedDateTime = DateTime.Now; using (var client1 = new HttpClient()) { client1.BaseAddress = new Uri(Common.Instance.ApiMemberControllerName); //HTTP POST var postTask1 = client1.PostAsJsonAsync <MemberMaster>(Common.Instance.ApiMemberAddMemberMaster, NewMember); postTask1.Wait(); var result1 = postTask1.Result; if (result1.IsSuccessStatusCode) { var rs = result1.Content.ReadAsAsync <MemberMaster>().Result; NewUserLogin.MemberID = rs.MemberID; NewUserLogin.Username = newSignupUser.signupUser.Username; NewUserLogin.Password = newSignupUser.signupUser.Password; NewUserLogin.Active = true; NewUserLogin.UserType = 4; NewUserLogin.ClientID = NewMember.ClientID; using (var client2 = new HttpClient()) { //userLogin section added client2.BaseAddress = new Uri(Common.Instance.ApiUserLoginUserLoginControllerName); var postTask2 = client2.PostAsJsonAsync <UserLogin>(Common.Instance.ApiUserLoginAddUserLogin, NewUserLogin); postTask2.Wait(); var result2 = postTask2.Result; if (result2.IsSuccessStatusCode) { var rs1 = result2.Content.ReadAsAsync <UserLogin>(); NewUserLogin = rs1.Result; AssignSessionVariables(NewUserLogin); SetSessionVariables(); //send booking request MemberBookingRequest bookingReuest = new MemberBookingRequest(); bookingReuest.memberBookingSpaces = ApplicationState.Instance.CartSpaces; bookingReuest.memberBookingSpaceSeats = ApplicationState.Instance.CartSeats; foreach (var _space in bookingReuest.memberBookingSpaces) { _space.ClientID = vModel.WorkSpaceDetails.selectedSpace.ClientID; _space.ClientLocationID = vModel.WorkSpaceDetails.selectedSpace.ClientLocationID; _space.MemberID = NewUserLogin.MemberID; _space.SpacePrice = vModel.WorkSpaceDetails.selectedSpace.Price; _space.CreatedBy = NewUserLogin.UserID; } foreach (var _memberSpace in bookingReuest.memberBookingSpaces) { using (var client3 = new HttpClient()) { client3.BaseAddress = new Uri(Common.Instance.ApiSpaceBookingControllerName); var postTask3 = client3.PostAsJsonAsync <MemberBookingSpace>(Common.Instance.ApiSpaceBookingRequestSpace, _memberSpace); postTask3.Wait(); var result3 = postTask3.Result; if (result3.IsSuccessStatusCode) { var _newMemberRequestedSpace = result3.Content.ReadAsAsync <MemberBookingSpace>().Result; foreach (var _seat in bookingReuest.memberBookingSpaceSeats) { _seat.MemberBookingSpaceID = _newMemberRequestedSpace.MemberBookingSpaceID; _seat.CreatedBy = NewUserLogin.UserID; } using (var client4 = new HttpClient()) { client4.BaseAddress = new Uri(Common.Instance.ApiSpaceBookingControllerName); var postTask4 = client4.PostAsJsonAsync <List <MemberBookingSpaceSeat> >(Common.Instance.ApiSpaceBookingRequestSpaceSeats, bookingReuest.memberBookingSpaceSeats); postTask4.Wait(); var result4 = postTask4.Result; if (result4.IsSuccessStatusCode) { //SpaceBookingViewModel spaceVM = new SpaceBookingViewModel(); //spaceVM.ClientLocationID = vModel.WorkSpaceDetails.selectedSpace.ClientLocationID.Value; return(RedirectToAction("Index", "Home")); } } //SpaceBookingViewModel spaceVM = new SpaceBookingViewModel(); //spaceVM.ClientLocationID = vModel.WorkSpaceDetails.selectedSpace.ClientLocationID.Value; //return RedirectToAction("Index", "MemberBooking", new { ClientLocationID = spaceVM.ClientLocationID }); } } } //end booking request } } } } } } ModelState.AddModelError(string.Empty, "Server Error. Please contact administrator."); } } return(View()); }
public ActionResult Login(UserLoginViewModel user) { //ViewBag.IsBooking = HttpContext.Request.Query["IsBooking"]; //bool IsBooking = Convert.ToBoolean(ViewBag.IsBooking); //user.IsBooking = IsBooking; var ssd = user.IsBooking; //if (user.IsBooking) // user.signupUser.IsClient = false; //else // user.signupUser.IsClient = true; UserLogin _user = null; using (var client = new HttpClient()) { client.BaseAddress = new Uri(Common.Instance.ApiUserLoginUserLoginControllerName); //HTTP GET var responseTask = client.PostAsJsonAsync(Common.Instance.ApiUserLoginAuthenticateUser, user.UserLogin); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <UserLogin>(); readTask.Wait(); _user = readTask.Result; } } if (_user != null && _user.UserStatus == UserStatus.Inactive) { ViewData["loginError"] = "Account inactive, please contact administrator"; return(View("Login", user)); } if (_user != null && _user.UserStatus == UserStatus.Suspended) { ViewData["loginError"] = "Account suspended, please contact administrator"; return(View("Login", user)); } if (_user != null && _user.Username == user.UserLogin.Username && _user.Password == user.UserLogin.Password) { AssignSessionVariables(_user); SetSessionVariables(); if (user.IsBooking) { if (ApplicationState.Instance.CartSpaces.Count() > 0) { using (var client = new HttpClient()) { WorkspaceDetailViewModel vModel = new WorkspaceDetailViewModel(); client.BaseAddress = new Uri(Common.Instance.ApiClientControllerName); var responseTask = client.GetAsync(Common.Instance.ApiClientGetWorkSpaceDetails + ApplicationState.Instance.CartSpaces[0].ClientSpaceFloorPlanID.ToString()); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <WorkSpaceDetailsResponse>(); readTask.Wait(); vModel.WorkSpaceDetails = readTask.Result; } //send booking request MemberBookingRequest bookingReuest = new MemberBookingRequest(); bookingReuest.memberBookingSpaces = ApplicationState.Instance.CartSpaces; bookingReuest.memberBookingSpaceSeats = ApplicationState.Instance.CartSeats; foreach (var _space in bookingReuest.memberBookingSpaces) { _space.ClientID = vModel.WorkSpaceDetails.selectedSpace.ClientID; _space.ClientLocationID = vModel.WorkSpaceDetails.selectedSpace.ClientLocationID; _space.MemberID = _user.MemberID; _space.SpacePrice = vModel.WorkSpaceDetails.selectedSpace.Price; _space.CreatedBy = _user.UserID; } foreach (var _memberSpace in bookingReuest.memberBookingSpaces) { using (var client3 = new HttpClient()) { client3.BaseAddress = new Uri(Common.Instance.ApiSpaceBookingControllerName); var postTask3 = client3.PostAsJsonAsync <MemberBookingSpace>(Common.Instance.ApiSpaceBookingRequestSpace, _memberSpace); postTask3.Wait(); var result3 = postTask3.Result; if (result3.IsSuccessStatusCode) { var _newMemberRequestedSpace = result3.Content.ReadAsAsync <MemberBookingSpace>().Result; foreach (var _seat in bookingReuest.memberBookingSpaceSeats) { _seat.MemberBookingSpaceID = _newMemberRequestedSpace.MemberBookingSpaceID; _seat.CreatedBy = _user.UserID; } using (var client4 = new HttpClient()) { client4.BaseAddress = new Uri(Common.Instance.ApiSpaceBookingControllerName); var postTask4 = client4.PostAsJsonAsync <List <MemberBookingSpaceSeat> >(Common.Instance.ApiSpaceBookingRequestSpaceSeats, bookingReuest.memberBookingSpaceSeats); postTask4.Wait(); var result4 = postTask4.Result; if (result4.IsSuccessStatusCode) { //SpaceBookingViewModel spaceVM = new SpaceBookingViewModel(); //spaceVM.ClientLocationID = vModel.WorkSpaceDetails.selectedSpace.ClientLocationID.Value; //return RedirectToAction("Index", "MemberBooking", new { ClientLocationID = spaceVM.ClientLocationID }); } } //SpaceBookingViewModel spaceVM = new SpaceBookingViewModel(); //spaceVM.ClientLocationID = vModel.WorkSpaceDetails.selectedSpace.ClientLocationID.Value; //return RedirectToAction("Index", "MemberBooking", new { ClientLocationID = spaceVM.ClientLocationID }); } } } //end booking request } } } return(RedirectToAction("Index", "Home")); } else { ViewData["loginError"] = "Incorrect username or password."; return(View("Login", user)); } return(View()); }
// GET: Authentication public ActionResult Login() { ViewBag.IsBooking = HttpContext.Request.Query["IsBooking"]; UserLoginViewModel vModel = new UserLoginViewModel(); vModel.IsBooking = Convert.ToBoolean(ViewBag.IsBooking); if (vModel.IsBooking && GetSessionObject() != null) { if (ApplicationState.Instance.CartSpaces.Count() > 0) { using (var client = new HttpClient()) { WorkspaceDetailViewModel vModelWS = new WorkspaceDetailViewModel(); client.BaseAddress = new Uri(Common.Instance.ApiClientControllerName); var responseTask = client.GetAsync(Common.Instance.ApiClientGetWorkSpaceDetails + ApplicationState.Instance.CartSpaces[0].ClientSpaceFloorPlanID.ToString()); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <WorkSpaceDetailsResponse>(); readTask.Wait(); vModelWS.WorkSpaceDetails = readTask.Result; } //send booking request MemberBookingRequest bookingReuest = new MemberBookingRequest(); bookingReuest.memberBookingSpaces = ApplicationState.Instance.CartSpaces; bookingReuest.memberBookingSpaceSeats = ApplicationState.Instance.CartSeats; foreach (var _space in bookingReuest.memberBookingSpaces) { _space.ClientID = vModelWS.WorkSpaceDetails.selectedSpace.ClientID; _space.ClientLocationID = vModelWS.WorkSpaceDetails.selectedSpace.ClientLocationID; _space.MemberID = GetSessionObject().MemberID; _space.SpacePrice = vModelWS.WorkSpaceDetails.selectedSpace.Price; _space.CreatedBy = GetSessionObject().UserID; } foreach (var _memberSpace in bookingReuest.memberBookingSpaces) { using (var client3 = new HttpClient()) { client3.BaseAddress = new Uri(Common.Instance.ApiSpaceBookingControllerName); var postTask3 = client3.PostAsJsonAsync <MemberBookingSpace>(Common.Instance.ApiSpaceBookingRequestSpace, _memberSpace); postTask3.Wait(); var result3 = postTask3.Result; if (result3.IsSuccessStatusCode) { var _newMemberRequestedSpace = result3.Content.ReadAsAsync <MemberBookingSpace>().Result; foreach (var _seat in bookingReuest.memberBookingSpaceSeats) { _seat.MemberBookingSpaceID = _newMemberRequestedSpace.MemberBookingSpaceID; _seat.CreatedBy = GetSessionObject().UserID; } using (var client4 = new HttpClient()) { client4.BaseAddress = new Uri(Common.Instance.ApiSpaceBookingControllerName); var postTask4 = client4.PostAsJsonAsync <List <MemberBookingSpaceSeat> >(Common.Instance.ApiSpaceBookingRequestSpaceSeats, bookingReuest.memberBookingSpaceSeats); postTask4.Wait(); var result4 = postTask4.Result; if (result4.IsSuccessStatusCode) { //SpaceBookingViewModel spaceVM = new SpaceBookingViewModel(); //spaceVM.ClientLocationID = vModel.WorkSpaceDetails.selectedSpace.ClientLocationID.Value; //return RedirectToAction("Index", "MemberBooking", new { ClientLocationID = spaceVM.ClientLocationID }); } } //SpaceBookingViewModel spaceVM = new SpaceBookingViewModel(); //spaceVM.ClientLocationID = vModel.WorkSpaceDetails.selectedSpace.ClientLocationID.Value; //return RedirectToAction("Index", "MemberBooking", new { ClientLocationID = spaceVM.ClientLocationID }); } } } //end booking request } } } if (GetSessionObject() != null) { return(RedirectToAction("Index", "Home")); } SetSessionVariables(); return(View(vModel)); }
public async Task <ActionResult <bool> > BookSpaces([FromBody] MemberBookingRequest bookingRequest) { bool result = true; #region Collect Existing Seats for Requested Spaces List <MemberBookingSpaceSeat> itemsToDelete = new List <MemberBookingSpaceSeat>(); using (var _delete = _context.Database.BeginTransaction()) { var spaces = bookingRequest.memberBookingSpaces.GroupBy(d => d.ClientSpaceFloorPlanID); foreach (var _space in spaces) { foreach (var _spaceSeat in _context.MemberBookingSpaceSeats.Where(d => d.MemberBookingSpaceID == _space.Key)) { itemsToDelete.Add(_spaceSeat); } } } #endregion using (var trans = _context.Database.BeginTransaction()) { try { try { #region Saving Booking Request //remove existing seats foreach (var item in itemsToDelete) { _context.MemberBookingSpaceSeats.Remove(item); } foreach (var newSpace in bookingRequest.memberBookingSpaces) { var isSpaceAvailable = _context.ClientWorkSpaceFloorPlans.SingleOrDefault(m => m.ClientSpaceFloorPlanID == newSpace.ClientSpaceFloorPlanID); if (isSpaceAvailable != null) { bool CanAddSeat = false; if (isSpaceAvailable.Status == ClientBookingStatus.Available) { newSpace.BookingStatus = MemberBookingStatus.Requested; newSpace.CreatedDateTime = DateTime.Now; _context.MemberBookingSpaces.Add(newSpace); //newSpace.MemberBookingSpaceID = trans.TransactionId; CanAddSeat = true; } else if (isSpaceAvailable.Status == ClientBookingStatus.Occupied && isSpaceAvailable.ClientID == newSpace.ClientID && isSpaceAvailable.ClientSpaceFloorPlanID == newSpace.ClientSpaceFloorPlanID) { newSpace.ModifyDateTime = DateTime.Now; _context.Entry(newSpace).State = EntityState.Modified; CanAddSeat = true; } //adding newly selected seats by space wise if (CanAddSeat) { //foreach (var newSeat in bookingRequest.memberBookingSpaceSeats.Where(d => d.MemberBookingSpaceID == newSpace.MemberBookingSpaceID).ToList()) foreach (var newSeat in bookingRequest.memberBookingSpaceSeats) { //var isSeatAvailable = _context.ClientSpaceSeats.SingleOrDefault(m => m.ClientSpaceSeatID == newSeat.ClientSpaceSeatID); //if (isSeatAvailable != null) //{ // if (isSeatAvailable.SeatStatus == ClientBookingStatus.Available) // { newSeat.MemberBookingSpaceID = newSpace.MemberBookingSpaceID; newSeat.SeatStatus = MemberBookingStatus.Requested; newSeat.CreatedDateTime = DateTime.Now; _context.MemberBookingSpaceSeats.Add(newSeat); // } //} } } } } #endregion #region Commit dbcontext await _context.SaveChangesAsync(); trans.Commit(); #endregion } catch (DbUpdateConcurrencyException err) { trans.Rollback(); result = false; } } catch (Exception err) { trans.Rollback(); result = false; } } return(result); }