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);
        }
Exemple #2
0
        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();
                }
            }
        }
Exemple #3
0
        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();
                }
            }
        }
Exemple #4
0
        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();
                }
            }
        }
Exemple #5
0
        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();
                }
            }
        }