public string GetAllReservations() { var result = String.Empty; var request = new GetAllReservationRequest(); var response = new GetAllReservationResponse(); ClaimsIdentity identity = (ClaimsIdentity)User.Identity; var isInternalUser = Convert.ToBoolean(identity.Claims.Where(x => x.Type == "IsInternalUser").First().Value); int userID = Int32.Parse(identity.Claims.Where(x => x.Type == "UserID").First().Value); try { request.IsInternalUser = isInternalUser; request.UserID = userID; ReservationService service = new ReservationService(); response = service.PerformGetAllReservations(request); } catch (Exception ex) { response = new GetAllReservationResponse() { MessageString = ex.Message, MessageStatusID = (byte)EMessageStatus.Exception }; result = JsonConvert.SerializeObject(response); return(result); } result = JsonConvert.SerializeObject(response); return(result); }
public GetAllReservationResponse PerformGetAllReservations(GetAllReservationRequest request) { GetAllReservationResponse response = new GetAllReservationResponse(); try { using (var db = new CuddlyWombatEntities()) { db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; var allReservations = new List <Reservation>(); if (request.IsInternalUser) { allReservations = (from r in db.Reservations.Include("ReservationStatu").Include("Customer") where r.ReservationStatusID != (byte)EReservationStatus.Canceled orderby r.ReservationDate select r).ToList(); } else { var customer = (from c in db.Customers where c.CustomerID == request.UserID select c).FirstOrDefault(); if (customer != null) { allReservations = (from r in db.Reservations.Include("ReservationStatu").Include("Customer") where r.CustomerID == customer.CustomerID && r.ReservationStatusID != (byte)EReservationStatus.Canceled orderby r.ReservationDate select r).ToList(); } else { response = new GetAllReservationResponse() { MessageString = "Please contact system admin", MessageStatusID = (byte)EMessageStatus.Fail }; } } foreach (var re in allReservations) { re.Customer.Reservations = null; re.Customer.Password = null; re.ReservationStatu.Reservations = null; } response.Reservations = allReservations; var averageCapacityOfTable = (from t in db.Tables where t.IsAvailable == true select t.Capacity).Average(); response.AverageCapacityOfTable = (int)averageCapacityOfTable; } } catch (Exception ex) { response.MessageStatusID = (byte)EMessageStatus.Exception; response.MessageString = ex.Message; } return(response); }