コード例 #1
0
        public JsonResult RegisterUser(string username, string password, string email, string name, string surname)
        {
            User user = new User();

            user.username         = username;
            user.password         = password;
            user.email            = email == null ? null : email.ToLower();
            user.name             = name;
            user.surname          = surname;
            user.guest            = 0;
            user.registrationdate = DateTime.UtcNow;

            List <Error> errors;

            if (UserValidator.CheckAdditionUser(user, out errors))
            {
                var foundUser = dbContext.Users.Where(x => x.username.ToLower() == user.username.ToLower()).ToList();
                if (foundUser.Count > 0)
                {
                    errors.Add(new Error {
                        error = "Пользователь с таким именем уже существует"
                    });
                }
                else
                {
                    foundUser = dbContext.Users.Where(x => x.email == user.email).ToList();
                    if (foundUser.Count > 0)
                    {
                        errors.Add(new Error {
                            error = "Пользователь с таким email адресом уже существует"
                        });
                    }
                    else
                    {
                        try
                        {
                            dbContext.Users.Add(user);
                            dbContext.SaveChanges();
                        }
                        catch (System.Data.SqlClient.SqlException sEx) { errors.Add(new Error {
                                error = "Ошибка БД. " + sEx.Message
                            }); }
                        //catch (Exception) { errors.Add(new Error { error = "Неизвестная ошибка БД" }); }
                    }
                }
            }

            if (errors.Count > 0)
            {
                return(Json(errors, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json("ok", JsonRequestBehavior.AllowGet));
            }
        }
コード例 #2
0
        public JsonResult NoMoreGuest(string token, string username, string password, string email, string name, string surname)
        {
            if (!AuthProvider.Instance.CheckToken(dbContext, token))
            {
                return(Json("wrong token", JsonRequestBehavior.AllowGet));
            }

            int userID = dbContext.Tokens.Find(token).user;

            if (dbContext.Users.Find(userID).guest != 1)
            {
                return(Json("not a guest", JsonRequestBehavior.AllowGet));
            }

            User updatedUser = new User();

            updatedUser.username = username;
            updatedUser.password = password;
            updatedUser.email    = email == null ? null : email.ToLower();
            updatedUser.name     = name;
            updatedUser.surname  = surname;
            updatedUser.guest    = 0;

            List <Error> errors;

            if (UserValidator.CheckAdditionUser(updatedUser, out errors))
            {
                var foundUser = dbContext.Users.Where(x => x.username.ToLower() == updatedUser.username.ToLower()).ToList();
                if (foundUser.Count > 0)
                {
                    errors.Add(new Error {
                        error = "Пользователь с таким именем уже существует"
                    });
                }
                foundUser = dbContext.Users.Where(x => x.email == updatedUser.email && x.id != userID).ToList();
                if (foundUser.Count > 0)
                {
                    errors.Add(new Error {
                        error = "Пользователь с таким email адресом уже существует"
                    });
                }
                else
                {
                    var user = dbContext.Users.Find(userID);
                    dbContext.Users.Attach(user);
                    var entry = dbContext.Entry(user);

                    entry.Property(e => e.username).IsModified = true;
                    entry.Entity.username = updatedUser.username;

                    entry.Property(e => e.password).IsModified = true;
                    entry.Entity.password = updatedUser.password;

                    entry.Property(e => e.email).IsModified = true;
                    entry.Entity.email = updatedUser.email;

                    entry.Property(e => e.name).IsModified = true;
                    entry.Entity.name = updatedUser.name;

                    entry.Property(e => e.surname).IsModified = true;
                    entry.Entity.surname = updatedUser.surname;

                    entry.Property(e => e.guest).IsModified = true;
                    entry.Entity.guest = updatedUser.guest;

                    dbContext.SaveChanges();
                }
            }

            if (errors.Count > 0)
            {
                return(Json(errors, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json("ok", JsonRequestBehavior.AllowGet));
            }
        }