示例#1
0
        public bool Add(Contact contact)
        {
            try
            {
                using (var db = new ClientManagementContext())
                {
                    db.Contacts.Add(contact);
                    db.SaveChanges();

                    var randomPass   = EncryptionService.GenerateRandomPassword(8);
                    var salt         = EncryptionService.CreateRandomSalt();
                    var passwordHash = EncryptionService.HashPassword(randomPass, salt);

                    var newUser = new User {
                        ContactId      = contact.Id,
                        PasswordHash   = passwordHash,
                        PasswordSalt   = salt,
                        RoleId         = UserRoleConstants.Customer,
                        Username       = contact.Username,
                        Status         = StatusConstants.Active,
                        CreatedDateUtc = contact.CreatedDate
                    };

                    db.Users.Add(newUser);
                    db.SaveChanges();

                    return(true);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
示例#2
0
        public bool ResetPassword(User user)
        {
            try
            {
                using (var db = new ClientManagementContext())
                {
                    var upateUser = db.Users.FirstOrDefault(d => d.Id == user.Id);

                    if (upateUser == null)
                    {
                        return(false);
                    }

                    var randomPass   = EncryptionService.GenerateRandomPassword(8);
                    var salt         = EncryptionService.CreateRandomSalt();
                    var passwordHash = EncryptionService.HashPassword(randomPass, salt);

                    upateUser.PasswordHash = passwordHash;
                    upateUser.PasswordSalt = salt;

                    db.SaveChanges();

                    return(true);
                }
            }
            catch
            {
                return(false);
            }
        }
示例#3
0
        public bool Update(User user)
        {
            try
            {
                using (var db = new ClientManagementContext())
                {
                    var upateUser = db.Users.FirstOrDefault(d => d.Id == user.Id);

                    if (upateUser == null)
                    {
                        return(false);
                    }

                    upateUser.Username = user.Username;

                    db.SaveChanges();

                    return(true);
                }
            }
            catch
            {
                return(false);
            }
        }
示例#4
0
        public bool Remove(Contact contact)
        {
            try
            {
                using (var db = new ClientManagementContext())
                {
                    var removeContact = db.Contacts.FirstOrDefault(d => d.Id == contact.Id);

                    if (removeContact == null)
                    {
                        return(false);
                    }
                    removeContact.Status = contact.Status;

                    db.SaveChanges();


                    var removeUser = db.Users.FirstOrDefault(d => d.ContactId == contact.Id);

                    if (removeUser == null)
                    {
                        return(false);
                    }
                    removeUser.Status = contact.Status;

                    db.SaveChanges();

                    return(true);
                }
            }
            catch
            {
                return(false);
            }
        }
示例#5
0
        public bool Update(Contact contact)
        {
            try
            {
                using (var db = new ClientManagementContext())
                {
                    var upateContact = db.Contacts.FirstOrDefault(d => d.Id == contact.Id);

                    if (upateContact == null)
                    {
                        return(false);
                    }

                    upateContact.FirstName = contact.FirstName;
                    upateContact.LastName  = contact.LastName;
                    upateContact.Email     = contact.Email;
                    upateContact.CellPhone = contact.CellPhone;
                    upateContact.Address   = contact.Address;

                    db.SaveChanges();

                    return(true);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
示例#6
0
        public User GetDetailsById(int id)
        {
            var filteredListing = new User();

            using (var db = new ClientManagementContext())
            {
                filteredListing = db.Users.Include(i => i.Contact).FirstOrDefault(d => d.Id == id);
            }

            return(filteredListing);
        }
示例#7
0
        public Contact GetDetailsById(int id)
        {
            var filteredListing = new Contact();

            using (var db = new ClientManagementContext())
            {
                filteredListing = db.Contacts.FirstOrDefault(d => d.Id == id);
            }

            return(filteredListing);
        }
示例#8
0
        public IEnumerable <User> GetListByFilter(UserSearchFilter filter)
        {
            List <User> contactList = new List <User>();

            using (ClientManagementContext db = new ClientManagementContext())
            {
                var query = db.Users
                            .Include(f => f.Contact)
                            .Include(f => f.UserRole)
                            .Where(f => (filter.SearchTerm == string.Empty || f.Username.Contains(filter.SearchTerm.Trim()) ||
                                         f.Contact.Email.Contains(filter.SearchTerm.Trim()) ||
                                         f.Contact.FirstName.Contains(filter.SearchTerm.Trim()) ||
                                         f.Contact.CellPhone.Contains(filter.SearchTerm.Trim())));
                filter.TotalCount = query.Count();

                //sorting
                Func <User, object> OrderByStringField = null;

                switch (filter.SortColumn)
                {
                case "Username":
                    OrderByStringField = p => p.Username;
                    break;

                case "Contact.FirstName":
                    OrderByStringField = p => p.Contact.FirstName;
                    break;

                case "Contact.Email":
                    OrderByStringField = p => p.Contact.Email;
                    break;

                case "CellPhone":
                    OrderByStringField = p => p.Contact.CellPhone;
                    break;

                default:
                    OrderByStringField = p => p.Contact.FirstName;
                    break;
                }
                //end sorting

                var finalQuery = filter.SortDirection == "ASC" ? query.OrderBy(OrderByStringField) : query.OrderByDescending(OrderByStringField);

                contactList = finalQuery.Skip((filter.PageNumber - 1) * filter.PageSize)
                              .Take(filter.PageSize)
                              .AsParallel()
                              .ToList();
            }

            return(new StaticPagedList <User>(contactList, filter.PageNumber, filter.PageSize, filter.TotalCount));
        }
示例#9
0
        public User GetDetailsByUsername(string username)
        {
            var filteredListing = new User();

            using (var db = new ClientManagementContext())
            {
                filteredListing = db.Users
                                  .Include(i => i.Contact)
                                  .Include(i => i.UserRole)
                                  .FirstOrDefault(d => d.Username == username);
            }

            return(filteredListing);
        }
示例#10
0
        public IPagedList <Contact> GetListByFilter(ContactSearchFilter filter)
        {
            List <Contact> contactList = new List <Contact>();

            using (ClientManagementContext db = new ClientManagementContext())
            {
                var query = db.Contacts
                            .Where(f =>
                                   (f.Status != StatusConstants.Deleted) &&
                                   (filter.UserRoleId == null || filter.UserRoleId == 0 || f.Users.Any(a => a.RoleId == filter.UserRoleId)) &&
                                   (filter.SearchTerm == string.Empty || f.FirstName.Contains(filter.SearchTerm.Trim()) ||
                                    f.Email.Contains(filter.SearchTerm.Trim()) ||
                                    f.CellPhone.Contains(filter.SearchTerm.Trim())));
                filter.TotalCount = query.Count();

                //sorting
                Func <Contact, object> OrderByStringField = null;

                switch (filter.SortColumn)
                {
                case "FirstName":
                    OrderByStringField = p => p.FirstName;
                    break;

                case "Email":
                    OrderByStringField = p => p.Email;
                    break;

                case "CellPhone":
                    OrderByStringField = p => p.CellPhone;
                    break;

                default:
                    OrderByStringField = p => p.FirstName;
                    break;
                }
                //end sorting

                var finalQuery = filter.SortDirection == "ASC" ? query.OrderBy(OrderByStringField) : query.OrderByDescending(OrderByStringField);

                contactList = finalQuery.Skip((filter.PageNumber - 1) * filter.PageSize)
                              .Take(filter.PageSize)
                              .AsParallel()
                              .ToList();
            }

            return(new StaticPagedList <Contact>(contactList, filter.PageNumber, filter.PageSize, filter.TotalCount));
        }
示例#11
0
        public bool Add(User user)
        {
            try
            {
                using (var db = new ClientManagementContext())
                {
                    db.Users.Add(user);
                    db.SaveChanges();

                    return(true);
                }
            }
            catch
            {
                return(false);
            }
        }
示例#12
0
 public GetTenantsQueryHandler(ClientManagementContext context)
 {
     this.context = context;
 }
示例#13
0
 public ClientRepository(ClientManagementContext dbContext)
 {
     DbContext = dbContext;
     DbSet     = DbContext.Set <Client>();
 }
示例#14
0
 public TenantQueryHandlers
     (ClientManagementContext context)
 {
     this.context = context;
 }