public RequestBidsModel ViewBid(int requestID, UsersModel user) { UsersModel userRepo = new UsersModel(); RequestBidsModel bid = new RequestBidsModel(); using (var db = new angelhackEntities()) { userRepo.CheckUserIfExist(db, user); var result = db.requestbids.Where(x => x.IsAwarded == false && (x.request.UserID == user.ID || x.UserID == user.ID) && x.RequestID == requestID && ( x.request.StatusID != (int)RequestStatus.CANCELLED && x.request.StatusID != (int)RequestStatus.SERVED && x.request.StatusID != (int)RequestStatus.CLOSED ) ).FirstOrDefault(); bid = mapper.Map <requestbid, RequestBidsModel>(result); } return(bid); }
public List <RequestBidsModel> GetBidsByMe(UsersModel user) { UsersModel userRepo = new UsersModel(); List <RequestBidsModel> notifications = new List <RequestBidsModel>(); using (var db = new angelhackEntities()) { userRepo.CheckUserIfExist(db, user); userRepo.IsUserServiceProvider(db, user); var result = db.requestbids.Where(x => x.IsAwarded == false && x.UserID == user.ID && ( x.request.StatusID != (int)RequestStatus.CANCELLED && x.request.StatusID != (int)RequestStatus.SERVED && x.request.StatusID != (int)RequestStatus.CLOSED ) ).ToList(); notifications = mapper.Map <List <requestbid>, List <RequestBidsModel> >(result); } return(notifications); }
public void SendToNotifications(RequestModel notification, UsersModel user) { var db = new angelhackEntities(); UsersModel userRepo = new UsersModel(); using (var transaction = db.Database.BeginTransaction()) { try { userRepo.CheckUserIfExist(db, user); userRepo.IsUserServiceProvider(db, user); var newNotification = new requestnotification(); newNotification.DateLastUpdated = DateTime.Now; newNotification.DateReceived = DateTime.Now; newNotification.IsAccepted = false; newNotification.RequestID = notification.ID; newNotification.RequestorID = notification.UserID; newNotification.UserID = user.ID; newNotification.IsAccepted = false; newNotification.IsDeclined = false; db.requestnotifications.Add(newNotification); db.SaveChanges(); transaction.Commit(); } catch (System.Data.Entity.Infrastructure.DbUpdateException dbU) { transaction.Rollback(); Exception ex = dbU.GetBaseException(); throw new Exception(ex.Message); } catch (DbEntityValidationException dbEx) { transaction.Rollback(); string errorMessages = null; foreach (DbEntityValidationResult validationResult in dbEx.EntityValidationErrors) { string entityName = validationResult.Entry.Entity.GetType().Name; foreach (DbValidationError error in validationResult.ValidationErrors) { errorMessages += (entityName + "." + error.PropertyName + ": " + error.ErrorMessage); } } throw new Exception(errorMessages); } finally { db.Database.Connection.Close(); } } }
public RequestBidsModel PlaceBid(RequestBidsModel bid, UsersModel user) { var db = new angelhackEntities(); UsersModel userRepo = new UsersModel(); using (var transaction = db.Database.BeginTransaction()) { try { userRepo.CheckUserIfExist(db, user); userRepo.IsUserServiceProvider(db, user); var newBid = new requestbid(); newBid.IsAwarded = false; newBid.Price = bid.Price; newBid.RequestID = bid.RequestID; newBid.ShopAddress = bid.ShopAddress; newBid.ShopName = bid.ShopName; newBid.UserID = user.ID; newBid.BidDate = DateTime.Now; db.requestbids.Add(newBid); db.SaveChanges(); transaction.Commit(); var getBid = db.requestbids.Where(x => x.ID == newBid.ID).FirstOrDefault(); return(mapper.Map <requestbid, RequestBidsModel>(getBid)); } catch (System.Data.Entity.Infrastructure.DbUpdateException dbU) { transaction.Rollback(); Exception ex = dbU.GetBaseException(); throw new Exception(ex.Message); } catch (DbEntityValidationException dbEx) { transaction.Rollback(); string errorMessages = null; foreach (DbEntityValidationResult validationResult in dbEx.EntityValidationErrors) { string entityName = validationResult.Entry.Entity.GetType().Name; foreach (DbValidationError error in validationResult.ValidationErrors) { errorMessages += (entityName + "." + error.PropertyName + ": " + error.ErrorMessage); } } throw new Exception(errorMessages); } finally { db.Database.Connection.Close(); } } }
public Boolean IsUserServiceProvider(angelhackEntities db, UsersModel user) { var chkUser = db.users.Where(x => x.ID == user.ID && x.IsActive == true && x.UserTypeID == (int)UserType.PROVIDER).FirstOrDefault(); if (chkUser == null) { throw new Exception("Provider does not exist!"); } return(true); }
public Boolean CheckUserIfExist(angelhackEntities db, UsersModel user) { var chkUser = db.users.Where(x => x.ID == user.ID && x.IsActive == true).FirstOrDefault(); if (chkUser == null) { throw new Exception("User does not exist!"); } return(true); }
public void AcceptBid(RequestBidsModel bid, UsersModel user) { var db = new angelhackEntities(); UsersModel userRepo = new UsersModel(); using (var transaction = db.Database.BeginTransaction()) { try { userRepo.CheckUserIfExist(db, user); var chkBid = db.requestbids.Where(x => x.ID == bid.ID && x.request.UserID == user.ID).FirstOrDefault(); if (chkBid == null) { throw new Exception("Bid does not exist!"); } chkBid.request.StatusID = (int)RequestStatus.CONFIRMED; chkBid.IsAwarded = true; db.SaveChanges(); transaction.Commit(); } catch (System.Data.Entity.Infrastructure.DbUpdateException dbU) { transaction.Rollback(); Exception ex = dbU.GetBaseException(); throw new Exception(ex.Message); } catch (DbEntityValidationException dbEx) { transaction.Rollback(); string errorMessages = null; foreach (DbEntityValidationResult validationResult in dbEx.EntityValidationErrors) { string entityName = validationResult.Entry.Entity.GetType().Name; foreach (DbValidationError error in validationResult.ValidationErrors) { errorMessages += (entityName + "." + error.PropertyName + ": " + error.ErrorMessage); } } throw new Exception(errorMessages); } finally { db.Database.Connection.Close(); } } }
public UsersModel FindUser(string email, string password) { var db = new angelhackEntities(); var result = db.users.Where(x => x.Email == email && x.Password == password).FirstOrDefault(); if (result == null) { throw new Exception("User does not exist1"); } return(mapper.Map <user, UsersModel>(result)); }
public List <RequestModel> GetAllMyRequest(UsersModel user) { UsersModel userRepo = new UsersModel(); List <RequestModel> myRequests = new List <RequestModel>(); using (var db = new angelhackEntities()) { userRepo.CheckUserIfExist(db, user); var result = db.requests.Where(x => x.UserID == user.ID).ToList(); myRequests = mapper.Map <List <request>, List <RequestModel> >(result); } return(myRequests); }
public void UpdatePassword(UsersAuth uAuth) { var db = new angelhackEntities(); using (var transaction = db.Database.BeginTransaction()) { try { var newUser = db.users.Where(x => x.ID == uAuth.ID).FirstOrDefault(); newUser.Password = uAuth.Password; db.SaveChanges(); transaction.Commit(); } catch (System.Data.Entity.Infrastructure.DbUpdateException dbU) { transaction.Rollback(); Exception ex = dbU.GetBaseException(); throw new Exception(ex.Message); } catch (DbEntityValidationException dbEx) { transaction.Rollback(); string errorMessages = null; foreach (DbEntityValidationResult validationResult in dbEx.EntityValidationErrors) { string entityName = validationResult.Entry.Entity.GetType().Name; foreach (DbValidationError error in validationResult.ValidationErrors) { errorMessages += (entityName + "." + error.PropertyName + ": " + error.ErrorMessage); } } throw new Exception(errorMessages); } finally { db.Database.Connection.Close(); } } }
public void ConfirmPayment(RequestBidsModel bidRef, UsersModel auth) { using (var db = new angelhackEntities()) { using (var transaction = db.Database.BeginTransaction()) { try { var bid = db.requestbids.Where(x => x.ID == bidRef.ID).FirstOrDefault(); if (bid == null) { throw new Exception("Bid does not exist!"); } if (bid.request.StatusID != (int)RequestStatus.SERVED && bid.request.StatusID != (int)RequestStatus.CONFIRMED) { throw new Exception("Bid does not exist!"); } bid.request.StatusID = (int)RequestStatus.CLOSED; db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); } finally { db.Database.Connection.Close(); } } } }
public List <RequestModel> PendingForMyBid(UsersModel user) { UsersModel userRepo = new UsersModel(); List <RequestModel> myRequests = new List <RequestModel>(); using (var db = new angelhackEntities()) { userRepo.CheckUserIfExist(db, user); userRepo.IsUserServiceProvider(db, user); //var result = db.requestnotifications.Where(x=>x.IsAccepted == true && //( // x.request.StatusID != (int)RequestStatus.CANCELLED && // x.request.StatusID != (int)RequestStatus.SERVED && // x.request.StatusID != (int)RequestStatus.CLOSED // ) //).Select(x=>x.request).ToList(); var result = (from x in db.requestnotifications join a in db.requestbids on new { RequestID = x.RequestID, UserID = x.UserID } equals new { RequestID = a.RequestID, UserID = a.UserID } into aa from aax in aa.DefaultIfEmpty() where aax == null && x.IsAccepted == true && ( x.request.StatusID != (int)RequestStatus.CANCELLED && x.request.StatusID != (int)RequestStatus.SERVED && x.request.StatusID != (int)RequestStatus.CLOSED ) select x.request).ToList(); myRequests = mapper.Map <List <request>, List <RequestModel> >(result); } return(myRequests); }
public RequestModel Create(RequestModel request, UsersModel requestor) { var db = new angelhackEntities(); using (var transaction = db.Database.BeginTransaction()) { try { var chkUser = db.users.Where(x => x.ID == requestor.ID).FirstOrDefault(); if (chkUser == null) { throw new Exception("User does not exist!"); } var newRequest = new request(); newRequest.CurrentLocation = request.CurrentLocation; newRequest.DateLastUpdated = DateTime.Now; newRequest.DateRequested = DateTime.Now; newRequest.DeliveryDate = request.DeliveryDate; newRequest.Description = request.Description; newRequest.StatusID = (int)request.StatusID; newRequest.UserID = requestor.ID; db.requests.Add(newRequest); db.SaveChanges(); transaction.Commit(); request.ID = newRequest.ID; request.UserID = requestor.ID; request.User = mapper.Map <user, UsersModel>(chkUser); return(request); } catch (System.Data.Entity.Infrastructure.DbUpdateException dbU) { transaction.Rollback(); Exception ex = dbU.GetBaseException(); throw new Exception(ex.Message); } catch (DbEntityValidationException dbEx) { transaction.Rollback(); string errorMessages = null; foreach (DbEntityValidationResult validationResult in dbEx.EntityValidationErrors) { string entityName = validationResult.Entry.Entity.GetType().Name; foreach (DbValidationError error in validationResult.ValidationErrors) { errorMessages += (entityName + "." + error.PropertyName + ": " + error.ErrorMessage); } } throw new Exception(errorMessages); } finally { db.Database.Connection.Close(); } } }
public void DeclineRequest(RequestModel notification, UsersModel user) { var db = new angelhackEntities(); UsersModel userRepo = new UsersModel(); using (var transaction = db.Database.BeginTransaction()) { try { userRepo.CheckUserIfExist(db, user); userRepo.IsUserServiceProvider(db, user); var newNotification = db.requestnotifications.Where(x => x.UserID == user.ID && x.IsDeclined == false && ( x.request.StatusID != (int)RequestStatus.CANCELLED && x.request.StatusID != (int)RequestStatus.SERVED && x.request.StatusID != (int)RequestStatus.CLOSED ) && x.RequestID == notification.ID).FirstOrDefault(); if (newNotification == null) { throw new Exception("Request no longer exist!"); } newNotification.DateLastUpdated = DateTime.Now; newNotification.IsDeclined = true; db.SaveChanges(); transaction.Commit(); } catch (System.Data.Entity.Infrastructure.DbUpdateException dbU) { transaction.Rollback(); Exception ex = dbU.GetBaseException(); throw new Exception(ex.Message); } catch (DbEntityValidationException dbEx) { transaction.Rollback(); string errorMessages = null; foreach (DbEntityValidationResult validationResult in dbEx.EntityValidationErrors) { string entityName = validationResult.Entry.Entity.GetType().Name; foreach (DbValidationError error in validationResult.ValidationErrors) { errorMessages += (entityName + "." + error.PropertyName + ": " + error.ErrorMessage); } } throw new Exception(errorMessages); } finally { db.Database.Connection.Close(); } } }
public void CreateOrUpdate(UsersModel user) { var db = new angelhackEntities(); Boolean isNewRecord = true; using (var transaction = db.Database.BeginTransaction()) { try { var newUser = db.users.Where(x => x.ID == user.ID).FirstOrDefault(); if (newUser == null) { newUser = new user(); isNewRecord = true; } newUser.Fullname = user.Fullname; newUser.Email = user.Email; newUser.ImageUrl = user.ImageUrl; newUser.IsActivated = user.IsActivated; newUser.IsActive = user.IsActive; newUser.UserTypeID = user.UserTypeID; if (isNewRecord) { db.users.Add(newUser); } db.SaveChanges(); transaction.Commit(); } catch (System.Data.Entity.Infrastructure.DbUpdateException dbU) { transaction.Rollback(); Exception ex = dbU.GetBaseException(); throw new Exception(ex.Message); } catch (DbEntityValidationException dbEx) { transaction.Rollback(); string errorMessages = null; foreach (DbEntityValidationResult validationResult in dbEx.EntityValidationErrors) { string entityName = validationResult.Entry.Entity.GetType().Name; foreach (DbValidationError error in validationResult.ValidationErrors) { errorMessages += (entityName + "." + error.PropertyName + ": " + error.ErrorMessage); } } throw new Exception(errorMessages); } finally { db.Database.Connection.Close(); } } }
public UserModelPaged GetList(UsersModel user, string search = null, int startIndex = 1, int pageSize = 10, string sortBy = "ID DESC") { var db = new angelhackEntities(); var propertyInfo = typeof(user).GetProperty("ID"); OrderByDirection sortDirec = OrderByDirection.Ascending; var resultset = db.users.Where(a => ( (search == null ? true : a.ID.ToString().Contains(search)) || (search == null ? true : a.Fullname.Contains(search)) || (search == null ? true : a.Email.Contains(search)) ) ).OrderBy(x => propertyInfo.GetValue(x, null), sortDirec); var totalRowCount = resultset.Count(); var recordTemp = resultset.Skip((startIndex - 1) * pageSize).Take(pageSize).ToList(); UserModelPaged pagedRecords = new UserModelPaged(); pagedRecords.PageNumber = startIndex; pagedRecords.TotalRecords = totalRowCount; pagedRecords.Records = mapper.Map <List <user>, List <UsersModel> >(recordTemp); var totalPages = (int)Math.Ceiling((decimal)pagedRecords.TotalRecords / (decimal)pageSize); var currentPage = startIndex == 0 ? (int)startIndex : 1; var startPage = currentPage - 5; var endPage = currentPage + 4; if (startPage <= 0) { endPage -= (startPage - 1); startPage = 1; } if (startIndex >= totalPages) { endPage = totalPages; if (endPage > 10) { startPage = endPage - 9; } } pagedRecords.CurrentPage = startIndex; pagedRecords.StartPage = startPage; pagedRecords.EndPage = endPage; pagedRecords.TotalPages = totalPages; pagedRecords.PageSize = pageSize; pagedRecords.CurrentRecordCount = pagedRecords.Records.Count(); return(pagedRecords); }
public void CancelRequest(RequestModel request, UsersModel requestor) { var db = new angelhackEntities(); using (var transaction = db.Database.BeginTransaction()) { try { var chkUser = db.users.Where(x => x.ID == requestor.ID).FirstOrDefault(); if (chkUser == null) { throw new Exception("User does not exist!"); } var newRequest = db.requests.Where(x => x.ID == request.ID && ( x.StatusID != (int)RequestStatus.CANCELLED && x.StatusID != (int)RequestStatus.SERVED && x.StatusID != (int)RequestStatus.CLOSED ) && x.UserID == requestor.ID).FirstOrDefault(); if (newRequest == null) { throw new Exception("Request does not exist!"); } newRequest.StatusID = (int)RequestStatus.CANCELLED; db.SaveChanges(); transaction.Commit(); } catch (System.Data.Entity.Infrastructure.DbUpdateException dbU) { transaction.Rollback(); Exception ex = dbU.GetBaseException(); throw new Exception(ex.Message); } catch (DbEntityValidationException dbEx) { transaction.Rollback(); string errorMessages = null; foreach (DbEntityValidationResult validationResult in dbEx.EntityValidationErrors) { string entityName = validationResult.Entry.Entity.GetType().Name; foreach (DbValidationError error in validationResult.ValidationErrors) { errorMessages += (entityName + "." + error.PropertyName + ": " + error.ErrorMessage); } } throw new Exception(errorMessages); } finally { db.Database.Connection.Close(); } } }