示例#1
0
        public User CreateUser(User user)
        {
            try
            {
                using (CapitalContext context = new CapitalContext())
                {
                    if (context.Users.Where(x => x.Email.ToLower() == user.Email.ToLower()).FirstOrDefault() == null)
                    {
                        user.CreationDate = DateTime.Now;
                        user.LastAccessDate = DateTime.Now;

                        ValidationContext valContext = new ValidationContext(this, null, null);
                        var errors = user.Validate(valContext);

                        if (errors.Count() == 0)
                        {
                            context.Users.Add(user);
                            context.SaveChanges();
                            return context.Users.FirstOrDefault(x => x.Email == user.Email);
                        }
                        else
                            throw new ModelException(errors);
                    }
                    else
                    {
                        throw new ModelException("Email Address Already Exists!");
                    }
                }
            }
            catch (DbEntityValidationException ex)
            {
                throw new ModelException(ex);
            }
            catch (DbUnexpectedValidationException ex)
            {
                throw new ModelException(ex);
            }
            catch (ModelException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                LogError(user, ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
                throw ex;
            }
        }