示例#1
0
        public async Task <OperationDetails> Create(RegisterModelDTO rm)
        {
            VcksUser user = await userManager.FindByNameAsync(rm.Email);

            if (user == null)
            {
                var original = new File()
                {
                    FileName    = rm.Avatar.FileName,
                    ContentType = rm.Avatar.ContentType,
                    Content     = rm.Avatar.Content,
                };
                var square = new File()
                {
                    FileName    = rm.Avatar.FileName,
                    ContentType = rm.Avatar.ContentType,
                    Content     = ImageHelpers.GetCroppedImage(rm.Avatar.Content),
                };
                var square_100 = new File()
                {
                    FileName    = rm.Avatar.FileName,
                    ContentType = rm.Avatar.ContentType,
                    Content     = ImageHelpers.GetCroppedImage(rm.Avatar.Content, 100),
                };
                var square_300 = new File()
                {
                    FileName    = rm.Avatar.FileName,
                    ContentType = rm.Avatar.ContentType,
                    Content     = ImageHelpers.GetCroppedImage(rm.Avatar.Content, 100),
                };
                var square_600 = new File()
                {
                    FileName    = rm.Avatar.FileName,
                    ContentType = rm.Avatar.ContentType,
                    Content     = ImageHelpers.GetCroppedImage(rm.Avatar.Content, 100),
                };

                user = new VcksUser()
                {
                    Email = rm.Email, UserName = rm.Email
                };

                user.Files = new List <File>()
                {
                    original, square, square_100, square_300, square_600
                };

                user.Profile = new VcksUserProfile()
                {
                    FirstName = rm.FirstName, LastName = rm.LastName, Email = rm.Email,
                    Avatar    = new Avatar {
                        Default = !rm.HasAvatar, Original = original, Square = square, Square_100 = square_100, Square_300 = square_300, Square_600 = square_600
                    }
                };

                var result = await userManager.CreateAsync(user, rm.Password);

                if (result.Errors.Count() > 0)
                {
                    return(new OperationDetails(false, result.Errors.FirstOrDefault().Description, ""));
                }

                await userManager.AddToRoleAsync(user, rm.Role);

                return(new OperationDetails(true, "Регистрация успешно пройдена", ""));
            }
            else
            {
                return(new OperationDetails(false, "Пользователь с таким логином уже существует", "Email"));
            }
        }