Example #1
0
 public IActionResult Create([FromBody] OrderAddVM model)
 {
     if (!ModelState.IsValid)
     {
         var errors = CustomValidator.GetErrorsByModel(ModelState);
         return(BadRequest(errors));
     }
     {
         Order m = new Order
         {
             CarId    = model.Car.Id,
             Price    = float.Parse(model.Car.Price.ToString()),
             ClientId = model.Client.Id,
             Date     = model.Date
         };
         _context.Orders.Add(m);
         _context.SaveChanges();
         return(Ok("Дані добалено"));
     }
 }
Example #2
0
        public async Task <ResultDTO> Login([FromBody] UserLoginDTO model)
        {
            if (!ModelState.IsValid)
            {
                return(new ResultErrorDTO
                {
                    Status = 403,
                    Message = "Invalid data for login",
                    Errors = CustomValidator.GetErrorsByModel(ModelState)
                });
            }

            //Переірка на успіх з логіном та паролем
            var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, false, false);

            if (!result.Succeeded)
            {
                return(new ResultErrorDTO
                {
                    Status = 401,
                    Message = "Error",
                    Errors = new List <string>()
                    {
                        "Incorrect login or password!"
                    }
                });
            }
            else
            {
                var user = await _userManager.FindByEmailAsync(model.Email);

                await _signInManager.SignInAsync(user, false);

                return(new ResultLoginDTO
                {
                    Status = 200,
                    Message = "OK",
                    Token = _jWTTokenService.CreateToken(user)
                });
            }
        }
        public async Task <ResultDTO> Register([FromBody] UserRegisterDTO model)
        {
            if (!ModelState.IsValid)
            {
                return(new ResultErrorDTO
                {
                    Status = 500,
                    Errors = CustomValidator.GetErrorsByModel(ModelState)
                });
            }

            var user = new User()
            {
                UserName = model.Email,
                Email    = model.Email,
                Balance  = 0
            };

            var result = await _userManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                _logger.LogInformation($"User: email: {user.Email} register failed");
                return(new ResultErrorDTO
                {
                    Status = 500,
                    Errors = CustomValidator.GetErrorsByIdentityResult(result)
                });
            }
            else
            {
                _logger.LogInformation($"User registered: id: {user.Id} email: {user.Email}");
                result = _userManager.AddToRoleAsync(user, "User").Result;
                await _context.SaveChangesAsync();
            }

            return(new ResultDTO
            {
                Status = 200
            });
        }
Example #4
0
        public async Task <ResultDto> Login([FromBody] UserLoginDto model)
        {
            if (!ModelState.IsValid)
            {
                return(new ResultErrorDto
                {
                    Status = 400,
                    Message = "ERROR",
                    Errors = CustomValidator.GetErrorsByModel(ModelState)
                });
            }
            else
            {
                var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, false, false);

                if (!result.Succeeded)
                {
                    List <string> error = new List <string>();
                    error.Add("User is not found, password or email isn't correct!");
                    return(new ResultErrorDto
                    {
                        Status = 400,
                        Message = "user not found!",
                        Errors = error
                    });
                }
                else
                {
                    var user = await _userManager.FindByEmailAsync(model.Email);

                    await _signInManager.SignInAsync(user, false);

                    return(new ResultLoginDto
                    {
                        Status = 200,
                        Message = "OK",
                        Token = _jwtTokenService.CreateToken(user)
                    });
                }
            }
        }
        public IActionResult Update([FromBody] MakeVM model)
        {
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }
            var make = _context.Makes.SingleOrDefault(p => p.Id == model.Id);

            if (make != null)
            {
                make = _context.Makes.SingleOrDefault(p => p.Name == model.Name);
                if (make == null)
                {
                    make.Name = model.Name;
                    _context.SaveChanges();
                    return(Ok("Дані оновлено"));
                }
            }
            return(BadRequest(new { name = "Помилка оновлення" }));
        }
Example #6
0
        public async Task <IActionResult> Login([FromBody] Credentials credentials)
        {
            if (!ModelState.IsValid)
            {
                var errrors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errrors));
            }
            var result = await _signInManager
                         .PasswordSignInAsync(credentials.Name, credentials.Password, false, false);

            if (!result.Succeeded)
            {
                return(BadRequest(new { invalid = "You entered an invalid credentials" }));
            }

            var user = await _userManager.FindByEmailAsync(credentials.Email);

            await _signInManager.SignInAsync(user, isPersistent : false);

            return(Ok(CreateToken(user)));
        }
        public IActionResult Create([FromBody] MakeAddVM model)
        {
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }
            var make = _context.Makes.SingleOrDefault(p => p.Name == model.Name);

            if (make == null)
            {
                Make m = new Make
                {
                    Name = model.Name
                };
                _context.Makes.Add(m);
                _context.SaveChanges();
                return(Ok("Дані добалено"));
            }
            return(BadRequest(new { name = "Дана марка вже добалена" }));
        }
Example #8
0
 public IActionResult AddProduct([FromBody] ProductAddViewModel model)
 {
     Thread.Sleep(3000);
     if (!ModelState.IsValid)
     {
         var errrors = CustomValidator.GetErrorsByModel(ModelState);
         return(BadRequest(errrors));
     }
     try
     {
         var cat = _context.Categories.SingleOrDefault(c => c.Name == model.Category);
         if (cat == null)
         {
             cat = new Category
             {
                 Name = model.Category
             };
             _context.Categories.Add(cat);
             _context.SaveChanges();
         }
         var product = new Product
         {
             CategoryId = cat.Id,
             Name       = model.Name
         };
         _context.Products.Add(product);
         _context.SaveChanges();
         var result = new ProductViewModel
         {
             Id       = product.Id,
             Name     = product.Name,
             Category = cat.Name
         };
         return(Ok(result));
     }
     catch
     {
         return(BadRequest(new { invalid = "Помилка збереження даних!" }));
     }
 }
Example #9
0
        public ResultDTO AddMeme([FromBody] MemeDTO memeDTO, [FromRoute] string userId)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new ResultErrorDTO
                    {
                        Status = 403,
                        Message = "ERROR",
                        Errors = CustomValidator.GetErrorsByModel(ModelState)
                    });
                }
                var meme = new Meme()
                {
                    Date   = memeDTO.Date,
                    Image  = memeDTO.Image,
                    Title  = memeDTO.Title,
                    Rating = 0
                };

                _context.Memes.Add(meme);
                _context.SaveChanges();
                var creator = _context.UserAdditionalInfos.FirstOrDefault(x => x.User.Id == userId);
                _context.CreatedMemes.Add(new CreatedMemes
                {
                    Meme = meme,
                    User = creator
                });
            }
            catch (Exception)
            {
                throw;
            }
            return(new ResultDTO
            {
                Status = 200,
                Message = "OK"
            });
        }
Example #10
0
        public async Task <ResultDTO> Login(UserLoginDTO model)
        {
            if (!ModelState.IsValid)
            {
                return(new ErrorResultDTO
                {
                    StatusCode = 500,
                    Message = "Login Error",
                    Errors = CustomValidator.GetErrorsByModel(ModelState)
                });
            }

            var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, false, false);

            if (!result.Succeeded)
            {
                return(new ErrorResultDTO
                {
                    StatusCode = 402,
                    Message = "Login failed",
                    Errors = new List <string>
                    {
                        "Login or password error"
                    }
                });
            }
            else
            {
                var user = await _userManager.FindByEmailAsync(model.Email);

                await _signInManager.SignInAsync(user, false);

                return(new SuccessResultDTO
                {
                    StatusCode = 200,
                    Message = "Ok",
                    Token = _iJWTTokenService.CreateToken(user)
                });
            }
        }
Example #11
0
        public ActionResult <ListMessages> GetMessageList([FromBody] MessageFilter filter)
        {
            if (filter.Count < 0 || filter.From < 0)
            {
                return(BadRequest());
            }
            if (User.Claims.ToList().Count > 0)
            {
                var a = User.Claims.ToList()[0].Value;
                if (User.Claims.ToList()[0].Value.ToString() != filter.chat.SenderId &&
                    User.Claims.ToList()[0].Value.ToString() != filter.chat.RecipientId)
                {
                    return(BadRequest());
                }
            }
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }
            var array = _context.Messages
                        .Where(x => (x.SenderId == filter.chat.SenderId || x.SenderId == filter.chat.RecipientId) &&
                               (x.RecipientId == filter.chat.RecipientId || x.RecipientId == filter.chat.SenderId)).ToList();

            array.Reverse();
            ListMessages model = new ListMessages();

            model.messages = new List <ModelMessage>();
            for (int i = filter.From; i < filter.Count + filter.From && i < array.Count; i++)
            {
                model.messages.Add(new ModelMessage {
                    SenderId = array[i].SenderId, DateCreate = array[i].DateCreate, RecipientId = array[i].RecipientId, Text = array[i].Text
                });
            }



            return(Ok(model));
        }
Example #12
0
        public IActionResult Update([FromBody] UserUpdateVM user)
        {
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }

            var str_name   = user.Name;
            var name_regex = @"^[A-Za-z-а-яА-Я]+$";

            var str_email   = user.Email;
            var email_regex = @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$";

            var match_name = Regex.Match(str_name, name_regex);

            var match_email = Regex.Match(str_email, email_regex);

            if (!match_name.Success)
            {
                return(BadRequest(new { Name = "Неправильний формат поля." }));
            }

            if (!match_email.Success)
            {
                return(BadRequest(new { Email = "Неправильний формат поля." }));
            }

            var emp = _context.Users.SingleOrDefault(p => p.Id == user.Id);

            if (emp != null)
            {
                emp.UserName = user.Name;
                emp.Email    = user.Email;
                _context.SaveChanges();
                return(Ok("Дані оновлено"));
            }
            return(BadRequest(new { Email = "Помилка оновлення" }));
        }
        public ResultDTO AddProduct([FromBody] AddProductDTO model)
        {
            if (!ModelState.IsValid)
            {
                return(new ResultDTO
                {
                    Status = 500,
                    Message = "Error",
                    Errors = CustomValidator.GetErrorsByModel(ModelState)
                });
            }
            else
            {
                var product = new Product()
                {
                    Name                  = model.Name,
                    Price                 = model.Price,
                    Brand                 = model.Brand,
                    Category              = model.Category,
                    Description           = model.Description,
                    MainImage             = model.MainImage,
                    Warranty              = model.Warranty,
                    Payment               = model.Payment,
                    FirstAdditionalImage  = model.FirstAdditionalImage,
                    SecondAdditionalImage = model.SecondAdditionalImage,
                    ThirdAdditionalImage  = model.ThirdAdditionalImage
                };

                _context.products.Add(product);

                _context.SaveChanges();

                return(new ResultDTO
                {
                    Status = 200,
                    Message = "OK"
                });
            }
        }
        public async Task <IActionResult> ResetPassword([FromBody] ResetPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var errrors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errrors));
            }
            var user = await _userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                return(BadRequest(new { invalid = "User is not found" }));
            }
            var result = await _userManager.ResetPasswordAsync(user, model.Code, model.Password);

            if (!result.Succeeded)
            {
                var errrors = CustomValidator.GetErrorsByIdentityResult(result);
                return(BadRequest(errrors));
            }
            return(Ok());
        }
        public async Task <IActionResult> ConfirmEmail(string userid, [FromBody] ConfirmEmailViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var errrors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errrors));
            }
            var user = await _userManager.FindByIdAsync(userid);

            if (user == null)
            {
                return(BadRequest(new { invalid = "User is not found" }));
            }
            var result = await _userManager.ConfirmEmailAsync(user, model.Code);

            if (!result.Succeeded)
            {
                var errrors = CustomValidator.GetErrorsByIdentityResult(result);
                return(BadRequest(errrors));
            }
            return(Ok());
        }
Example #16
0
        public async Task <IActionResult> Register([FromBody] RegisterViewModel credentials)
        {
            if (!ModelState.IsValid)
            {
                var errrors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errrors));
            }
            var user = new DbUser
            {
                Email    = credentials.Email,
                UserName = credentials.Name,
            };
            var result = await _userManager.CreateAsync(user, credentials.Password);

            if (!result.Succeeded)
            {
                return(BadRequest(result.Errors));
            }
            await _signInManager.SignInAsync(user, isPersistent : false);

            return(Ok(CreateToken(user)));
        }
Example #17
0
 public IActionResult AddProduct([FromBody] AddProductModel model)
 {
     if (!ModelState.IsValid)
     {
         var errrors = CustomValidator.GetErrorsByModel(ModelState);
         return(BadRequest(errrors));
     }
     try
     {
         var category = _context.Categories.SingleOrDefault(c => c.Name == model.CategoryName);
         if (category == null)
         {
             category = new Category
             {
                 Name = model.CategoryName
             };
             _context.Categories.Add(category);
             _context.SaveChanges();
         }
         var product = new Product
         {
             CategoryID = category.Id,
             Name       = model.ProductName
         };
         _context.Products.Add(product);
         _context.SaveChanges();
         var result = new ProductItemModel
         {
             ProductID    = product.Id,
             ProductName  = product.Name,
             CategoryName = category.Name
         };
         return(Ok(result));
     }
     catch
     {
         return(BadRequest("Cannot add item!!!"));
     }
 }
        public async Task <IActionResult> Login([FromBody] LoginViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }

            var user = _context.Users.FirstOrDefault(u => u.Email == model.Email);

            if (user == null)
            {
                return(BadRequest(new { invalid = "Користувача із вказаними обліковими даними не знайдено" }));
            }

            var result = _signInManager
                         .PasswordSignInAsync(user, model.Password, false, false).Result;

            if (!result.Succeeded)
            {
                return(BadRequest(new { invalid = "Користувача із вказаними обліковими даними не знайдено" }));
            }

            var block = _context.UserAccessLocks.FirstOrDefault(u => u.Id == user.Id);

            if (block != null)
            {
                return(BadRequest(new { invalid = "Нажаль Вас Заблоковано" }));
            }

            await _signInManager.SignInAsync(user, isPersistent : false);

            return(Ok(
                       new
            {
                token = _tokenService.CreateToken(user),
                refToken = _tokenService.CreateRefreshToken(user)
            }));
        }
Example #19
0
        public IActionResult DeleteProduct(int id)
        {
            Thread.Sleep(3000);
            if (!ModelState.IsValid)
            {
                var errrors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errrors));
            }


            if (id == 0)
            {
                return(NotFound());
            }
            try
            {
                var product = _context.Products.SingleOrDefault(c => c.Id == id);
                if (product != null)
                {
                    _context.Remove(product);
                    _context.SaveChanges();
                    var result = new ProductViewModel
                    {
                        Id = product.Id
                    };
                    return(Ok(result));
                }
                else
                {
                    return(NotFound());
                }
            }
            catch
            {
                return(BadRequest(new { invalid = "Помилка збереження даних!" }));
            }
        }
Example #20
0
        public IActionResult Create([FromBody] ClientAddVM client)
        {
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }
            string dirName     = "images";
            string dirPathSave = Path.Combine(dirName, client.UniqueName);

            if (!Directory.Exists(dirPathSave))
            {
                Directory.CreateDirectory(dirPathSave);
            }
            var    bmp       = client.Image.FromBase64StringToImage();
            var    imageName = client.UniqueName;
            string fileSave  = Path.Combine(dirPathSave, $"{imageName}");

            var bmpOrigin = new System.Drawing.Bitmap(bmp);

            string[] imageNames = { $"50_" + imageName + ".jpg",
                                    $"100_" + imageName + ".jpg",
                                    $"300_" + imageName + ".jpg",
                                    $"600_" + imageName + ".jpg",
                                    $"1280_" + imageName + ".jpg" };

            Bitmap[] imageSave = { ImageWorker.CreateImage(bmpOrigin,   50,  50),
                                   ImageWorker.CreateImage(bmpOrigin,  100, 100),
                                   ImageWorker.CreateImage(bmpOrigin,  300, 300),
                                   ImageWorker.CreateImage(bmpOrigin,  600, 600),
                                   ImageWorker.CreateImage(bmpOrigin, 1280, 1280) };

            for (int i = 0; i < imageNames.Count(); i++)
            {
                var imageSaveEnd = System.IO.Path.Combine(dirPathSave, imageNames[i]);
                imageSave[i].Save(imageSaveEnd, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            var str    = client.Phone;
            var regex  = @"\+38\d{1}\(\d{2}\)\d{3}\-\d{2}\-\d{2}";
            var str2   = client.Name;
            var regex2 = @"^[A-Za-z-а-яА-Я]+$";
            var str3   = client.Email;
            var regex3 = @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$";
            var match  = Regex.Match(str, regex);
            var match2 = Regex.Match(str2, regex2);
            var match3 = Regex.Match(str3, regex3);

            if (!match.Success)
            {
                return(BadRequest(new { Phone = "issue" }));
            }
            if (!match2.Success)
            {
                return(BadRequest(new { Name = "issue" }));
            }
            if (!match3.Success)
            {
                return(BadRequest(new { Email = "issue" }));
            }

            var cl = _context.Clients.FirstOrDefault(p => p.Email == client.Email);

            if (cl != null)
            {
                return(BadRequest(new { Email = "Такий email вже існує!" }));
            }
            var cli = _context.Clients.FirstOrDefault(p => p.Phone == client.Phone);

            if (cli != null)
            {
                return(BadRequest(new { Phone = "Такий номер вже існує!" }));
            }
            //var fileDestDir = _env.ContentRootPath;
            //string dirName = _configuration.GetValue<string>("ImagesPath");
            ////Папка де зберігаються фотки
            //string dirPathSave = Path.Combine(fileDestDir, dirName);
            //if (!Directory.Exists(dirPathSave))
            //{
            //    Directory.CreateDirectory(dirPathSave);
            //}
            //var bmp = model.Image.FromBase64StringToImage();
            //var imageName = Path.GetRandomFileName() + ".jpg";
            //string fileSave = Path.Combine(dirPathSave, $"{imageName}");

            //bmp.Save(fileSave, ImageFormat.Jpeg);

            Client c = new Client
            {
                Name       = client.Name,
                Phone      = client.Phone,
                Email      = client.Email,
                UniqueName = client.UniqueName
            };

            _context.Clients.Add(c);
            _context.SaveChanges();
            return(Ok(c.Id));
        }
        public async Task <IActionResult> Boys([FromBody] BoysViewModels filter)//model
        {
            //  BoysViewModels filter = new BoysViewModels();
            // filter = new BoysViewModels();
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }

            var GenderId = await _context.Gender.Where(x => x.Type == "Man").SingleOrDefaultAsync();

            var a = (DateTime.Now.Year * 100 + DateTime.Now.Month) * 100 + DateTime.Now.Day;
            GetListBoysModel result = new GetListBoysModel();

            result.CurrentPage = filter.CurrentPage;
            int  CityId           = -1;
            bool isCityIdParsed   = int.TryParse(filter.CityId, out CityId);
            int  ZodiacId         = -1;
            bool isZodiacIdParsed = int.TryParse(filter.ZodiacId, out ZodiacId);
            var  query            = _context.UserProfile.AsQueryable();
            //int CityId = Convert.ToInt32(filter.CityId);
            //int ZodiacId = Convert.ToInt32(filter.ZodiacId);
            int  Age         = -1;
            bool isAgeParsed = int.TryParse(filter.Age, out Age);

            //int Age = Convert.ToInt32(filter.Age);
            if (isCityIdParsed)
            {
                if (CityId > 0)
                {
                    query = query.Where(x => x.CityId == CityId);
                }
            }
            if (isZodiacIdParsed)
            {
                if (ZodiacId > 0)
                {
                    query = query.Where(x => x.ZodiacId == ZodiacId);
                }
            }
            if (isAgeParsed)
            {
                if (Age > 0)
                {
                    query.Where(x => filter.Age == ((a - (x.DateOfBirth.Year * 100 + x.DateOfBirth.Month) * 100 + x.DateOfBirth.Day) / 10000).ToString());
                }
            }
            var today = DateTime.Today;



            List <GetBoysModel> boys       = new List <GetBoysModel>();
            List <GetZodiac>    GetZodiacs = new List <GetZodiac>();
            List <GetCity>      GetCities  = new List <GetCity>();

            var city = await _context.City.AsQueryable().ToListAsync();

            var zodiac = await _context.Zodiac.AsQueryable().ToListAsync();

            foreach (var item in city)
            {
                GetCities.Add(new GetCity {
                    Value = item.Id.ToString(), Label = item.Name
                });
            }

            foreach (var item in zodiac)
            {
                GetZodiacs.Add(new GetZodiac {
                    Value = item.Id.ToString(), Label = item.Name
                });
            }

            result.TotalCount = query.Count();
            string path = $"{_configuration.GetValue<string>("UserUrlImages")}/300_";

            boys = query
                   .Include(c => c.City)
                   .Where(u => u.GenderId == GenderId.Id && ((a - (u.DateOfBirth.Year * 100 + u.DateOfBirth.Month) * 100 + u.DateOfBirth.Day) / 10000) < int.Parse(filter.Age_to) && ((a - (u.DateOfBirth.Year * 100 + u.DateOfBirth.Month) * 100 + u.DateOfBirth.Day) / 10000) > int.Parse(filter.Age_from))
                   .OrderBy(u => Guid.NewGuid())
                   .Take(12)
                   .Skip((filter.CurrentPage - 1) * 10)
                   .Select(u => new GetBoysModel
            {
                City   = u.City.Name,
                Status = "status",        //u.Description,
                Age    = (a - (u.DateOfBirth.Year * 100 + u.DateOfBirth.Month) * 100 + u.DateOfBirth.Day) / 10000,
                Name   = u.NickName,
                Avatar = u.Avatar != "" ?
                         path + u.Avatar :
                         _configuration.GetValue <string>("UserUrlImages") +
                         "/300_" + _configuration.GetValue <string>("DefaultImage")
            })
                   .ToList();

            result.GetListBoys = boys;
            result.GetCities   = GetCities;
            result.GetZodiacs  = GetZodiacs;

            return(Ok(result));
        }
Example #22
0
        public IActionResult Create([FromBody] CarAddVM model)
        {
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }
            string dirName     = "images";
            string dirPathSave = Path.Combine(dirName, model.UniqueName);

            if (!Directory.Exists(dirPathSave))
            {
                Directory.CreateDirectory(dirPathSave);
            }
            var    bmp       = model.MainImage.FromBase64StringToImage();
            var    imageName = model.UniqueName;
            string fileSave  = Path.Combine(dirPathSave, $"{imageName}");

            var bmpOrigin = new System.Drawing.Bitmap(bmp);

            string[] imageNames = { $"50_" + imageName + ".jpg",
                                    $"100_" + imageName + ".jpg",
                                    $"300_" + imageName + ".jpg",
                                    $"600_" + imageName + ".jpg",
                                    $"1280_" + imageName + ".jpg" };

            Bitmap[] imageSave = { ImageWorker.CreateImage(bmpOrigin,   50,  50),
                                   ImageWorker.CreateImage(bmpOrigin,  100, 100),
                                   ImageWorker.CreateImage(bmpOrigin,  300, 300),
                                   ImageWorker.CreateImage(bmpOrigin,  600, 600),
                                   ImageWorker.CreateImage(bmpOrigin, 1280, 1280) };

            for (int i = 0; i < imageNames.Count(); i++)
            {
                var imageSaveEnd = System.IO.Path.Combine(dirPathSave, imageNames[i]);
                imageSave[i].Save(imageSaveEnd, System.Drawing.Imaging.ImageFormat.Jpeg);
            }

            dirPathSave = Path.Combine(dirName, model.UniqueName, "Photo");
            if (!Directory.Exists(dirPathSave))
            {
                Directory.CreateDirectory(dirPathSave);
            }
            for (int i = 0; i < model.AdditionalImage.Count; i++)
            {
                bmp      = model.AdditionalImage[i].FromBase64StringToImage();
                fileSave = Path.Combine(dirPathSave);

                bmpOrigin = new System.Drawing.Bitmap(bmp);
                string[] imageNamess = { $"50_{i+1}_" + imageName + ".jpg",
                                         $"100_{i+1}_" + imageName + ".jpg",
                                         $"300_{i+1}_" + imageName + ".jpg",
                                         $"600_{i+1}_" + imageName + ".jpg",
                                         $"1280_{i+1}_" + imageName + ".jpg" };

                Bitmap[] imageSaves = { ImageWorker.CreateImage(bmpOrigin,   50,  50),
                                        ImageWorker.CreateImage(bmpOrigin,  100, 100),
                                        ImageWorker.CreateImage(bmpOrigin,  300, 300),
                                        ImageWorker.CreateImage(bmpOrigin,  600, 600),
                                        ImageWorker.CreateImage(bmpOrigin, 1280, 1280) };

                for (int j = 0; j < imageNamess.Count(); j++)
                {
                    var imageSaveEnd = System.IO.Path.Combine(dirPathSave, imageNamess[j]);
                    imageSaves[j].Save(imageSaveEnd, System.Drawing.Imaging.ImageFormat.Jpeg);
                }
            }
            var cars = _context.Cars.SingleOrDefault(p => p.UniqueName == model.UniqueName);

            if (cars == null)
            {
                Car car = new Car
                {
                    UniqueName = model.UniqueName,
                    Count      = model.Count,
                    Date       = model.Date,
                    Name       = model.Name,
                    Price      = model.Price
                };
                _context.Cars.Add(car);
                _context.SaveChanges();
                return(Ok(car.Id));
            }
            return(BadRequest(new { name = "Даний автомобіль вже добалений" }));
        }
Example #23
0
        //[Authorize(Roles = "Admin")]
        public IActionResult Create([FromBody] ProductPostVM model)
        {
            List <string> err = new List <string>();

            // перевіряємо модель на валідність
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }

            // зберігаємо фото
            var bmp = model.PhotoBase64.FromBase64StringToImage();

            if (bmp != null)
            {
                model.PhotoName = Path.GetRandomFileName() + ".jpg";

                string imageNamePath = Path.Combine(dirPathSave, model.PhotoName);
                var    image         = ImageHelper.CreateImage(bmp, 300, 300);
                image.Save(imageNamePath, ImageFormat.Jpeg);
            }
            else
            {
                model.PhotoName = kNamePhotoDefault;
            }

            // передаємо модель в БД
            DbProduct prod = new DbProduct
            {
                Name       = model.Name,
                Price      = model.Price,
                DateCreate = DateTime.Now,
                PhotoName  = model.PhotoName,
                CategoryId = model.CategoryId
            };

            _context.Products.Add(prod);
            _context.SaveChanges();


            int fValueIdType = model.FilterIdType;
            int fNameIdType  = _context.FilterNameGroups
                               .SingleOrDefault(v => v.FilterValueId == model.FilterIdType).FilterNameId;


            int valuePrice = 0;

            if (model.Price < 50)
            {
                valuePrice = 1;
            }
            else if (model.Price >= 50 && model.Price < 100)
            {
                valuePrice = 2;
            }
            else if (model.Price >= 100 && model.Price < 300)
            {
                valuePrice = 3;
            }
            else if (model.Price >= 300 && model.Price < 700)
            {
                valuePrice = 4;
            }
            else if (model.Price >= 700)
            {
                valuePrice = 5;
            }

            Filter filter = new Filter {
                FilterNameId = 1, FilterValueId = valuePrice, ProductId = prod.Id
            };
            var f = _context.Filters.SingleOrDefault(p => p == filter);

            if (f == null)
            {
                _context.Filters.Add(filter);
                _context.SaveChanges();
            }

            filter = new Filter {
                FilterNameId = fNameIdType, FilterValueId = fValueIdType, ProductId = prod.Id
            };
            f = _context.Filters.SingleOrDefault(p => p == filter);
            if (f == null)
            {
                _context.Filters.Add(filter);
                _context.SaveChanges();
            }

            return(Ok(prod.Id));
        }
        public async Task <IActionResult> Registration([FromBody] RegistrationVM model)
        {
            List <string> err = new List <string>();

            // перевіряємо модель на валідність
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }

            // створюємо роль адмін
            string roleAdmin = "Admin";

            // шукаємо роль в базі. Якщо немає - додаємо
            var role = _roleManager.FindByNameAsync(roleAdmin).Result;

            if (role == null)
            {
                role = new DbRole
                {
                    Name = roleAdmin
                };

                var addRoleResult = _roleManager.CreateAsync(role).Result;
            }

            // шукаємо юзера в базі по імейлу. якщо немає - додаємо
            var user = _userManager.FindByNameAsync(model.Email).Result;

            if (user == null)
            {
                user = new DbUser
                {
                    UserName = model.Email,
                    Email    = model.Email,
                };

                var result = _userManager.CreateAsync(user, model.Password).Result;
                // якщо додало - додаємо роль
                if (result.Succeeded)
                {
                    result = _userManager.AddToRoleAsync(user, roleAdmin).Result;
                    // логінимо юзера
                    await _signInManager.SignInAsync(user, isPersistent : false);

                    // передаємо модель в БД
                    UserProfile up = new UserProfile
                    {
                        DbUserId  = user.Id,
                        FirstName = model.FirstName,
                        LastName  = model.LastName,
                        Phone     = model.Phone
                    };

                    user.UserProfile = up;

                    _context.UserProfiles.Add(up);
                    _context.SaveChanges();

                    return(Ok(
                               new
                    {
                        token = CreateTokenJWT(user)
                    }));
                }
            }
            else
            {
                err.Add("Така пошта вже зареєстрована!");
            }

            return(BadRequest(err));
        }
Example #25
0
        public async Task <IActionResult> Register([FromBody] UserRegisterVM model)
        {
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }
            var str_name   = model.Name;
            var name_regex = @"^[A-Za-z-а-яА-Я]+$";

            var str_email   = model.Email;
            var email_regex = @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$";

            var match_name = Regex.Match(str_name, name_regex);

            var match_email = Regex.Match(str_email, email_regex);

            if (!match_name.Success)
            {
                return(BadRequest(new { Name = "Неправильний формат поля." }));
            }

            if (!match_email.Success)
            {
                return(BadRequest(new { Email = "Неправильний формат поля." }));
            }

            string roleName = "Employee";
            var    role     = _roleManager.FindByNameAsync(roleName).Result;

            if (role == null)
            {
                role = new DbRole {
                    Name = roleName
                };
            }
            var userEmail = model.Email;

            //var user = _userManager.FindByEmailAsync(userEmail).Result;
            if (_userManager.FindByEmailAsync(userEmail).Result != null)
            {
                return(BadRequest(new { Email = "Така електронна пошта вже існує!" }));
            }
            var user = new DbUser
            {
                Email    = userEmail,
                UserName = model.Name
            };
            //user.UserRoles = new List<DbRole>();
            var result = _userManager.CreateAsync(user, model.Password).Result;

            if (!result.Succeeded)
            {
                return(BadRequest(new { Password = "******" }));
            }
            result = _userManager.AddToRoleAsync(user, roleName).Result;

            if (!result.Succeeded)
            {
                return(BadRequest(new { Password = "******" }));
            }

            return(Ok(
                       new
            {
                token = CreateTokenJwt(user)
            }));
        }
        public async Task <IActionResult> Register([FromBody] RegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }

            var user = _context.Users.FirstOrDefault(u => u.Email == model.Email);

            if (user != null)
            {
                return(BadRequest(new { invalid = "Електронна адреса вже використовується" }));
            }

            var str = "";

            DateTime model_date = DateTime.Parse(model.DateOfBirth);

            //DateTime model_date = DateTime.ParseExact(model.DateOfBirth, "yyyy.MM.dd", CultureInfo.InvariantCulture);
            if (model_date.Month == 3 && model_date.Day >= 21 || model_date.Month == 4 && model_date.Day <= 20)
            {
                str = "Овен";
            }

            else if (model_date.Month == 4 && model_date.Day >= 21 || model_date.Month == 5 && model_date.Day <= 21)
            {
                str = "Телець";
            }

            else if (model_date.Month == 5 && model_date.Day >= 22 || model_date.Month == 6 && model_date.Day <= 21)
            {
                str = "Близнята";
            }

            else if (model_date.Month == 6 && model_date.Day >= 22 || model_date.Month == 7 && model_date.Day <= 22)
            {
                str = "Рак";
            }

            else if (model_date.Month == 7 && model_date.Day >= 23 || model_date.Month == 8 && model_date.Day <= 23)
            {
                str = "Лев";
            }

            else if (model_date.Month == 8 && model_date.Day >= 24 || model_date.Month == 9 && model_date.Day <= 22)
            {
                str = "Діва";
            }

            else if (model_date.Month == 9 && model_date.Day >= 23 || model_date.Month == 10 && model_date.Day <= 23)
            {
                str = "Терези";
            }

            else if (model_date.Month == 10 && model_date.Day >= 24 || model_date.Month == 11 && model_date.Day <= 22)
            {
                str = "Скорпіон";
            }

            else if (model_date.Month == 11 && model_date.Day >= 23 || model_date.Month == 12 && model_date.Day <= 21)
            {
                str = "Стрілець";
            }

            else if (model_date.Month == 12 && model_date.Day >= 22 || model_date.Month == 1 && model_date.Day <= 20)
            {
                str = "Козоріг";
            }

            else if (model_date.Month == 1 && model_date.Day >= 21 || model_date.Month == 2 && model_date.Day <= 20)
            {
                str = "Водолій";
            }

            else if (model_date.Month == 2 && model_date.Day >= 21 || model_date.Month == 3 && model_date.Day <= 20)
            {
                str = "Риби";
            }

            var    zodiac = _context.Zodiac.FirstOrDefault(z => z.Name == str);
            var    city   = _context.City.FirstOrDefault(z => z.Name == model.City);
            Gender gender = _context.Gender.FirstOrDefault(z => z.Type == model.Gender);

            var userProfile = new UserProfile()
            {
                DateOfRegister = DateTime.Now,
                NickName       = model.NickName,
                DateOfBirth    = DateTime.Parse(model.DateOfBirth),
                ZodiacId       = zodiac.Id,
                CityId         = city.Id,
                GenderId       = gender.Id
            };


            user = new DbUser()
            {
                UserName    = model.Email,
                Email       = model.Email,
                UserProfile = userProfile
            };

            var roleName = "User";

            var result = _userManager.CreateAsync(user, model.Password).Result;

            result = _userManager.AddToRoleAsync(user, roleName).Result;

            if (!result.Succeeded)
            {
                var errors = CustomValidator.GetErrorsByIdentityResult(result);
                return(BadRequest(errors));
            }

            await _signInManager.SignInAsync(user, isPersistent : false);

            string name = $"{userProfile.NickName} ";



            await _emailSender.SendEmailAsync(user.Email, "Ласкаво просимо, ",
                                              $"Шановний(на)  <strong>{name}</strong>" +
                                              $"<br/>" +
                                              $"Ви успішно пройшли реєстрацію" +
                                              $"<br/>" +
                                              $"<br/>");

            //$"Для входу нажміть на посилання:    <a href='https://idealcrud.azurewebsites.net/#/login'>Перейти</a>");

            return(Ok(
                       new
            {
                token = _tokenService.CreateToken(user),
                refToken = _tokenService.CreateRefreshToken(user)
            }));
        }
Example #27
0
        public IActionResult Update([FromBody] CarUpdateVM model)
        {
            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }
            if (model.MainImage != null)
            {
                string dirName     = "images";
                string dirPathSave = Path.Combine(dirName, model.UniqueName);
                if (!Directory.Exists(dirPathSave))
                {
                    Directory.CreateDirectory(dirPathSave);
                }
                else
                {
                    Directory.Delete(dirPathSave, true);
                    Directory.CreateDirectory(dirPathSave);
                    System.GC.Collect();
                    System.GC.WaitForPendingFinalizers();
                }
                var    bmp       = model.MainImage.FromBase64StringToImage();
                var    imageName = model.UniqueName;
                string fileSave  = Path.Combine(dirPathSave, $"{imageName}");

                var      bmpOrigin  = new System.Drawing.Bitmap(bmp);
                string[] imageNames = { $"50_" + imageName + ".jpg",
                                        $"100_" + imageName + ".jpg",
                                        $"300_" + imageName + ".jpg",
                                        $"600_" + imageName + ".jpg",
                                        $"1280_" + imageName + ".jpg" };

                Bitmap[] imageSave = { ImageWorker.CreateImage(bmpOrigin,   50,  50),
                                       ImageWorker.CreateImage(bmpOrigin,  100, 100),
                                       ImageWorker.CreateImage(bmpOrigin,  300, 300),
                                       ImageWorker.CreateImage(bmpOrigin,  600, 600),
                                       ImageWorker.CreateImage(bmpOrigin, 1280, 1280) };

                for (int i = 0; i < imageNames.Count(); i++)
                {
                    var imageSaveEnd = System.IO.Path.Combine(dirPathSave, imageNames[i]);
                    imageSave[i].Save(imageSaveEnd, System.Drawing.Imaging.ImageFormat.Jpeg);
                }
                if (model.AdditionalImage != null)
                {
                    dirPathSave = Path.Combine(dirName, model.UniqueName, "Photo");
                    if (!Directory.Exists(dirPathSave))
                    {
                        Directory.CreateDirectory(dirPathSave);
                    }
                    for (int i = 0; i < model.AdditionalImage.Count; i++)
                    {
                        bmp      = model.AdditionalImage[i].FromBase64StringToImage();
                        fileSave = Path.Combine(dirPathSave);

                        bmpOrigin = new System.Drawing.Bitmap(bmp);
                        string[] imageNamess = { $"50_{i+1}_" + imageName + ".jpg",
                                                 $"100_{i+1}_" + imageName + ".jpg",
                                                 $"300_{i+1}_" + imageName + ".jpg",
                                                 $"600_{i+1}_" + imageName + ".jpg",
                                                 $"1280_{i+1}_" + imageName + ".jpg" };

                        Bitmap[] imageSaves = { ImageWorker.CreateImage(bmpOrigin,   50,  50),
                                                ImageWorker.CreateImage(bmpOrigin,  100, 100),
                                                ImageWorker.CreateImage(bmpOrigin,  300, 300),
                                                ImageWorker.CreateImage(bmpOrigin,  600, 600),
                                                ImageWorker.CreateImage(bmpOrigin, 1280, 1280) };

                        for (int j = 0; j < imageNamess.Count(); j++)
                        {
                            var imageSaveEnd = System.IO.Path.Combine(dirPathSave, imageNamess[j]);
                            imageSaves[j].Save(imageSaveEnd, System.Drawing.Imaging.ImageFormat.Jpeg);
                        }
                    }
                }
            }
            var car = _context.Cars.SingleOrDefault(p => p.Id == model.Id);

            if (car != null)
            {
                car.Price = model.Price;
                car.Date  = model.Date;
                if (model.Name != "")
                {
                    car.Name = model.Name;
                }
                car.Count      = model.Count;
                car.UniqueName = model.UniqueName;

                _context.SaveChanges();
                return(Ok(car.Id));
            }
            return(BadRequest());
        }
Example #28
0
        public ActionResult AddMessage([FromBody] ModelSendMessage message)
        {
            //if (User.Claims.ToList().Count>0)
            //{
            //    if (User.Claims.ToList()[0].Value.ToString() != message.SenderId)
            //    {
            //        return BadRequest();
            //    }
            //
            //}

            if (!ModelState.IsValid)
            {
                var errors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errors));
            }
            Messages mess = new Messages {
                RecipientId = message.RecipientId, SenderId = message.SenderId, Text = message.Text, DateCreate = DateTime.Now
            };

            if (!mess.IsValide())
            {
                return(BadRequest());
            }
            var Sender = _context.UserProfile.FirstOrDefault(x => x.Id == mess.SenderId);

            if (Sender == null)
            {
                return(BadRequest());
            }
            if (Sender.Messages == null)
            {
                Sender.Messages = new List <Messages>();
            }


            var Recip = _context.UserRecipient.FirstOrDefault(x => x.Id == mess.RecipientId);


            if (Recip == null)
            {
                var recProfile = _context.UserProfile.FirstOrDefault(x => x.Id == mess.RecipientId);
                if (recProfile == null)
                {
                    return(BadRequest());
                }
                UserRecipient user = new UserRecipient {
                    Id = recProfile.Id, Messages = new List <Messages>()
                };
                Recip = user;
                _context.UserRecipient.Add(user);
            }
            var messages =
                _context.Messages;

            messages.Add(mess);

            _context.SaveChanges();



            return(Ok());
        }
Example #29
0
        public async Task <ResultDTO> Register([FromBody] UserRegisterDTO model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new ResultErrorDTO
                    {
                        Status = 403,
                        Message = "ERROR",
                        Errors = CustomValidator.GetErrorsByModel(ModelState)
                    });
                }

                var user = new User()
                {
                    UserName    = model.Email,
                    Email       = model.Email,
                    PhoneNumber = model.Phone
                };

                var userProfile = new UserAdditionalInfo()
                {
                    Address  = model.Address,
                    Image    = "default.jpg",
                    FullName = model.FullName,
                    Id       = user.Id
                };

                IdentityResult result = await _userManager.CreateAsync(user, model.Password);


                if (!result.Succeeded)
                {
                    return(new ResultErrorDTO
                    {
                        Message = "ERROR",
                        Status = 500,
                        Errors = CustomValidator.GetErrorsByIdentotyResult(result)
                    });
                }
                else
                {
                    result = _userManager.AddToRoleAsync(user, "User").Result;
                    _context.UserAdditionalInfos.Add(userProfile);
                    _context.SaveChanges();
                }


                return(new ResultDTO
                {
                    Status = 200,
                    Message = "OK"
                });
            }
            catch (Exception e)
            {
                return(new ResultDTO {
                    Status = 500,
                    Message = e.Message,
                });
            }
        }
Example #30
0
        public async Task <ResultDTO> Register([FromBody] UserRegisterDTO model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new ResultErrorDTO
                    {
                        Status = 403,
                        Message = "error",
                        Errors = CustomValidator.GetErrorsByModel(ModelState)
                    });
                }
                var user = new User()
                {
                    UserName    = model.Email,
                    Email       = model.Email,
                    PhoneNumber = model.Phone
                };

                var userProFile = new UserAdditional()
                {
                    Address      = model.Address,
                    Image        = "default.jpg",
                    DataRegister = DateTime.Now.ToShortDateString(),
                    PublishCount = "0",
                    FullName     = model.FullName,
                    Id           = user.Id
                };

                IdentityResult result = await _userManager.CreateAsync(user, model.Password);

                if (!result.Succeeded)
                {
                    return(new ResultErrorDTO
                    {
                        Message = "error",
                        Status = 500,
                        Errors = CustomValidator.GetErrorByIdentityResult(result)
                    });
                }
                else
                {
                    result = _userManager.AddToRoleAsync(user, "User").Result;
                    userProFile.UserRole = "User";
                    _eFContext.UserAdditional.Add(userProFile);

                    _eFContext.SaveChanges();
                }


                return(new ResultDTO
                {
                    Status = 200,
                    Message = "OK"
                });
            }
            catch (Exception e)
            {
                return(new ResultDTO
                {
                    Status = 500,
                    Message = e.Message
                });
            }
        }