コード例 #1
0
        public void SaveGuideChanges(NewGuideModel model)
        {
            var guide = _db.guide.FirstOrDefault(e => e.Id == model.Id);

            if (guide == null)
            {
                throw new MyException(Errors.UserNotFound);
            }

            model.CopyTo(ref guide);
            //editor.user.Password = StringTransformationProvider.Md5(model.Password);
            guide.user.Email   = StringTransformationProvider.TransformEmail(model.Email);
            guide.user.Deleted = model.Deleted;

            //сохранение новых прав
            _db.country_permission.RemoveRange(guide.user.country_permission);
            _db.city_permission.RemoveRange(guide.user.city_permission);
            //_db.region_permission.RemoveRange(guide.user.region_permission);

            _db.country_permission.AddRange(
                model.PermittedCountries.Select(c => new country_permission {
                CountryId = c, UserId = guide.UserId
            }));
            _db.city_permission.AddRange(
                model.PermittedCities.Select(c => new city_permission {
                CityId = c, UserId = guide.UserId
            }));
            // _db.region_permission.AddRange(
            //     model.PermittedRegions.Select(c => new region_permission { RegionId = c, UserId = guide.UserId }));


            _db.SaveChanges();
        }
コード例 #2
0
        public void AddNewAdmin(NewAdminModel model)
        {
            model.Email = StringTransformationProvider.TransformEmail(model.Email);
            if (_db.user.Any(u => u.Email == model.Email))
            {
                throw new MyException(Errors.UserExists);
            }
            var trans = _db.Database.BeginTransaction();

            try
            {
                var newUser = new user
                {
                    Guid       = Guid.NewGuid().ToString(),
                    Password   = StringTransformationProvider.Md5(model.Password),
                    Email      = model.Email,
                    UserTypeId = GetUserTypeByTag(UserTypes.Admin),
                    Deleted    = false
                };
                _db.user.Add(newUser);
                _db.SaveChanges();
                var admin = new admin();
                model.CopyTo(ref admin);
                admin.UserId = newUser.Id;
                _db.admin.Add(admin);
                _db.SaveChanges();
                trans.Commit();
            }
            catch (Exception)
            {
                trans.Rollback();
                throw;
            }
        }
コード例 #3
0
        public void RecoverPassword(string email, string appLang)
        {
            var user = _db.user.FirstOrDefault(t => t.Email == email);

            if (user == null)
            {
                throw new MyException(Errors.UserNotFound);
            }
            var password = StringTransformationProvider.GeneratePassword();

            user.Password = StringTransformationProvider.Md5(password);
            _db.SaveChanges();
            var tenant = user.tenant.FirstOrDefault();

            if (tenant != null)
            {
                MailProvider.SendMailRecoveryPassword(password, tenant.FirstName,
                                                      tenant.MiddleName, user.Email, appLang);
                return;
            }
            else
            {
                var guide = user.guide.FirstOrDefault();
                if (guide != null)
                {
                    MailProvider.SendMailRecoveryPassword(password, guide.FirstName,
                                                          guide.MiddleName, user.Email, appLang);
                    return;
                }
                else
                {
                    var journalist = user.journalist.FirstOrDefault();
                    if (journalist != null)
                    {
                        MailProvider.SendMailRecoveryPassword(password, journalist.FirstName,
                                                              journalist.MiddleName, user.Email, appLang);
                        return;
                    }
                    else
                    {
                        var editor = user.editor.FirstOrDefault();
                        if (editor != null)
                        {
                            MailProvider.SendMailRecoveryPassword(password, editor.FirstName,
                                                                  editor.MiddleName, user.Email, appLang);
                            return;
                        }
                        else
                        {
                            MailProvider.SendMailRecoveryPassword(password, "",
                                                                  "", user.Email, appLang);
                            return;
                        }
                    }
                }
            }
        }
コード例 #4
0
        public user GetUserByLoginAndPassword(string email, string password)
        {
            var md5Pass = StringTransformationProvider.Md5(password);

            email = StringTransformationProvider.TransformEmail(email);
            var user = _db.user.FirstOrDefault(u => u.Email == email && md5Pass == u.Password);

            if (user == null)
            {
                throw new MyException(Errors.UserNotFound);
            }
            return(user);
        }
コード例 #5
0
        public void SaveTenantChanges(NewTenantModel model)
        {
            var tenant = _db.tenant.FirstOrDefault(e => e.Id == model.Id);

            if (tenant == null)
            {
                throw new MyException(Errors.UserNotFound);
            }

            model.CopyTo(ref tenant);
            //editor.user.Password = StringTransformationProvider.Md5(model.Password);
            tenant.user.Email   = StringTransformationProvider.TransformEmail(model.Email);
            tenant.user.Deleted = model.Deleted;

            _db.SaveChanges();
        }
コード例 #6
0
        public void AddNewEditor(NewEditorModel model)
        {
            model.Email = StringTransformationProvider.TransformEmail(model.Email);
            if (_db.user.Any(u => u.Email == model.Email))
            {
                throw new MyException(Errors.UserExists);
            }
            var trans = _db.Database.BeginTransaction();

            try
            {
                var newUser = new user
                {
                    Guid       = Guid.NewGuid().ToString(),
                    Password   = StringTransformationProvider.Md5(model.Password),
                    Email      = model.Email,
                    UserTypeId = GetUserTypeByTag(UserTypes.Editor),
                    Deleted    = model.Deleted
                };
                _db.user.Add(newUser);
                _db.SaveChanges();
                var newEditor = new editor();
                model.CopyTo(ref newEditor);
                newEditor.UserId = newUser.Id;
                _db.editor.Add(newEditor);

                _db.country_permission.AddRange(
                    model.PermittedCountries.Select(c => new country_permission {
                    CountryId = c, UserId = newUser.Id
                }));
                _db.city_permission.AddRange(
                    model.PermittedCities.Select(c => new city_permission {
                    CityId = c, UserId = newUser.Id
                }));

                /* _db.region_permission.AddRange(
                 *   model.PermittedRegions.Select(c => new region_permission {RegionId = c, UserId = newUser.Id}));*/

                _db.SaveChanges();
                trans.Commit();
            }
            catch (Exception ex)
            {
                trans.Rollback();
                throw;
            }
        }
コード例 #7
0
        public void AddNewTenant(string email, string firstName, string middleName, string lastName, DateTime birthDate, string gender, string phone, string address, string appLang)
        {
            if (_db.user.Any(u => u.Email == email))
            {
                throw new MyException(Errors.UserExists);
            }
            var trans    = _db.Database.BeginTransaction();
            var password = StringTransformationProvider.GeneratePassword();

            try
            {
                var newUser = new user
                {
                    Email      = email,
                    Deleted    = false,
                    Guid       = Guid.NewGuid().ToString(),
                    Password   = StringTransformationProvider.Md5(password),
                    UserTypeId = _db.usertype.First(t => t.Tag == UserTypes.Tenant).Id
                };
                _db.user.Add(newUser);
                _db.SaveChanges();
                _db.tenant.Add(new tenant
                {
                    Address    = address,
                    BirthDate  = birthDate,
                    UserId     = newUser.Id,
                    FirstName  = firstName,
                    LastName   = lastName,
                    MiddleName = middleName,
                    Gender     = gender,
                    Phone      = phone
                });
                _db.SaveChanges();
                trans.Commit();
                MailProvider.SendMailWithCredintails(password, firstName, middleName, email, appLang);
            }
            catch
            {
                trans.Rollback();
                throw;
            }
        }
コード例 #8
0
        public ActionResult AddNewGuide(NewGuideModel model)
        {
            var repo = DependencyResolver.Current.GetService <IRepository>();

            try
            {
                model.Password = StringTransformationProvider.GeneratePassword();
                repo.AddNewGuide(model);
                MailProvider.SendMailWithCredintails(model.Password, model.FirstName, model.MiddleName, model.Email);
            }
            catch (MyException e)
            {
                return(new JsonResult
                {
                    JsonRequestBehavior = JsonRequestBehavior.DenyGet,
                    Data = new { success = false, errorReason = e.Error.Message }
                });
            }
            return(new JsonResult
            {
                JsonRequestBehavior = JsonRequestBehavior.DenyGet,
                Data = new { success = true }
            });
        }