示例#1
0
        public void ChangePassword(UserModel userModel)
        {
            try
            {
                if (!base.UserHasPermision(userModel))
                {
                    return;
                }

                AspNetUser aspNetUser = dbContext.AspNetUsers.Where(x => x.Id == userModel.Id).FirstOrDefault();

                if (aspNetUser == null)
                {
                    base.HandleError(userModel, CommonLayer.LookUps.ErrorType.Critical, null, Resources.NotFound);
                    return;
                }

                aspNetUser.PasswordHash = Hasher.HashString(userModel.Password);

                base.SaveChanges();

                userModel.AddSuccess(Resources.UserPasswordChangedSuccessfully, LookUps.SuccessType.Full);
            }
            catch (Exception ex)
            {
                base.HandleError(userModel, CommonLayer.LookUps.ErrorType.Exception, ex);
            }
        }
示例#2
0
        public void Edit(UserModel userModel)
        {
            try
            {
                //if (!base.UserHasPermision(userModel))
                //    return;

                AspNetUser aspNetUser = dbContext.AspNetUsers.Where(x => x.Id == userModel.Id).FirstOrDefault();

                if (aspNetUser == null)
                {
                    base.HandleError(userModel, CommonLayer.LookUps.ErrorType.Critical, null, Resources.NotFound);
                    return;
                }

                if (Validate(userModel))
                {
                    return;
                }

                UserMapper.Map(dbContext, userModel, aspNetUser);

                base.SaveChanges();

                userModel.AddSuccess(Resources.UserUpdatedSuccessfully, LookUps.SuccessType.Full);
            }
            catch (Exception ex)
            {
                base.HandleError(userModel, CommonLayer.LookUps.ErrorType.Exception, ex);
                base.UndoUpdates();
            }
        }
示例#3
0
        public void Delete(UserModel userModel)
        {
            try
            {
                if (ValidateDelete(userModel))
                {
                    return;
                }

                AspNetUser aspNetUser = dbContext.AspNetUsers.Where(x => x.Id == userModel.Id).FirstOrDefault();

                if (aspNetUser == null)
                {
                    base.HandleError(userModel, CommonLayer.LookUps.ErrorType.Critical, null, Resources.NotFound);
                    return;
                }

                aspNetUser.AspNetRoles.Clear();
                dbContext.AspNetRoles.RemoveRange(aspNetUser.AspNetRoles);
                dbContext.AspNetUsers.Remove(aspNetUser);

                base.SaveChanges();

                userModel.AddSuccess(Resources.UserDeletedSuccessfully, LookUps.SuccessType.Full);
            }
            catch (System.Data.Entity.Infrastructure.DbUpdateException)
            {
                base.HandleError(userModel, CommonLayer.LookUps.ErrorType.Business, null, Resources.RefrenceDeleteError);
                base.UndoUpdates();
            }
            catch (Exception ex)
            {
                base.HandleError(userModel, CommonLayer.LookUps.ErrorType.Exception, ex);
                base.UndoUpdates();
            }
        }
示例#4
0
        public void Create(UserModel userModel, CommonLayer.Entities.ITemplate regestrationCompleted)
        {
            try
            {
                //if (!base.UserHasPermision(userModel))
                //    return;

                //example of tasks
                //for (int i = 0; i < 10000000; i++)
                //    base.AddWaitingAction((async () =>
                //    {
                //        System.Threading.Thread.Sleep(1000);
                //    }));

                if (Validate(userModel))
                {
                    return;
                }

                using (var transaction = dbContext.Database.BeginTransaction())
                {
                    try
                    {
                        AspNetUser aspNetUser = new AspNetUser();
                        UserMapper.Map(dbContext, userModel, aspNetUser);
                        aspNetUser.PasswordHash = Hasher.HashString(userModel.Password);
                        aspNetUser.Id           = Guid.NewGuid().ToString();
                        //aspNetUser.AspNetRoles = userModel.RolesIDs.Select(x => dbContext.AspNetRoles.Find(x)).ToList();
                        aspNetUser.EmailConfirmed = true;
                        aspNetUser.SecurityStamp  = Guid.NewGuid().ToString();
                        dbContext.AspNetUsers.Add(aspNetUser);

                        base.SaveChanges();
                        transaction.Commit();

                        userModel.AddSuccess(Resources.UserAddedSuccessfully, LookUps.SuccessType.Full);

                        CommonLayer.TemplateLists.Regestration regestration = new CommonLayer.TemplateLists.Regestration();

                        regestration.ID       = aspNetUser.Id;
                        regestration.UserName = aspNetUser.UserName;

                        //call method in base call (IEmail,to,cc,title)
                        //if (regestrationCompleted != null)
                        //{
                        //    //pass the parameters and then send the email from here
                        //    //regestrationCompleted.PrepareTemplate(regestration);
                        //}
                        //base.SendEmail()
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw ex;
                    }
                }
            }
            catch (Exception ex)
            {
                base.HandleError(userModel, CommonLayer.LookUps.ErrorType.Exception, ex);
                base.UndoUpdates();
            }
        }