public JsonResult Put(int id, [FromBody] OrdersViewModel model)
        {
            if (!ModelState.IsValid)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return Json(new { message = Validation.getValidationErrors(model) });
            }
            if (model.Items == null || model.Items.Count() == 0)
            {
                return Json(new { message = "Список товаров не может быть пустыми" });
            }
            IEnumerable<int> validItems = ItemsService.getValidItemsList(dapperService, model.Items).Select(x => x.Id);
            if (validItems == null || validItems.Count() == 0)
            {
                return Json(new { message = "Следующие товары не существует в базе", model.Items });
            }
            List<int> inValidItems = new List<int>();
            foreach (var i in model.Items)
            {
                if (!validItems.Contains(i))
                {
                    inValidItems.Add(i);
                }
            }
            if (inValidItems != null && inValidItems.Count() > 0)
            {
                return Json(new { message = "Следующие товары не существует в базе", Items = inValidItems });
            }
            if (!RegionsService.checkForExists(dapperService, model.RegionId))
            {
                return Json(new { message = $"RegionId={model.RegionId} не существует в базе" });
            }

            OrdersModel item = new OrdersModel()
            {
                Id = id,
                RegionId = model.RegionId,
                ItemsIds = model.Items
            };
            bool isSaved = ordersService.Update(item, id);

            return Json(new { message = isSaved ? "Сохранено" : "Не cохранено" });
        }
        public JsonResult Post([FromBody] OrdersViewModel model)
        {
            if (!ModelState.IsValid)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return Json(new { message = Validation.getValidationErrors(model) });
            }
            if (model.Items == null || model.Items.Count() == 0)
            {
                return Json(new { message = "Список товаров не может быть пустыми" });
            }
            if (!Int32.TryParse(User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value, out int id))
            {
                return Json(new { message = "Пользователь не существует" });
            }
            IEnumerable<int> validItems =  ItemsService.getValidItemsList(dapperService, model.Items).Select(x => x.Id);
            if (validItems == null || validItems.Count() == 0)
            {
                return Json(new { message = "Следующие товары не существует в базе", model.Items });
            }
            List<int> inValidItems = new List<int>();
            foreach(var i in model.Items)
            {
                if(!validItems.Contains(i)){
                    inValidItems.Add(i);
                }
            }
            if(inValidItems != null && inValidItems.Count() > 0)
            {
                return Json(new { message = "Следующие товары не существует в базе" , Items = inValidItems });
            }
            if (!RegionsService.checkForExists(dapperService, model.RegionId))
            {
                return Json(new { message = $"RegionId={model.RegionId} не существует в базе"});
            }
            OrdersModel items = new OrdersModel(model){
                UserId = id
            };
            bool isSaved = ordersService.Save(items);

            return Json(new { message = isSaved ? "Сохранено" : "Не cохранено" });
        }
        public IActionResult GetResult(int id)
        {
            if (!RegionsService.checkForExists(dapperService, id))
            {
                return(Content($"RegionId = {id} не существует в базе"));
            }
            IEnumerable <OrdersModel> orders = OrdersService.GetOrdersByRegionId(dapperService, id);

            using (var workbook = new XLWorkbook())
            {
                var worksheet  = workbook.Worksheets.Add("Orders");
                var currentRow = 1;
                worksheet.Cell(currentRow, 1).Value = "Id";
                worksheet.Cell(currentRow, 2).Value = "Сумма";
                worksheet.Cell(currentRow, 3).Value = "Клиент";
                worksheet.Cell(currentRow, 4).Value = "Дата создание";
                worksheet.Cell(currentRow, 5).Value = "Регион";
                foreach (var order in orders)
                {
                    currentRow++;
                    worksheet.Cell(currentRow, 1).Value = order.Id;
                    worksheet.Cell(currentRow, 2).Value = order.User.FullName;
                    worksheet.Cell(currentRow, 3).Value = order.Sum;
                    worksheet.Cell(currentRow, 4).Value = order.CreatedTime;
                    worksheet.Cell(currentRow, 5).Value = order.Region.Name.Trim();
                }

                using (var stream = new MemoryStream())
                {
                    workbook.SaveAs(stream);
                    var content = stream.ToArray();

                    return(File(
                               content,
                               "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                               "ЗаказыПоРегиону.xlsx"));
                }
            }
        }