public async Task <IActionResult> Create(CreateEditVendorVM model)
        {
            try
            {
                if (ModelState.GetFieldValidationState("Title") == Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState.Valid &&
                    ModelState.GetFieldValidationState("Address") == Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState.Valid)
                {
                    if (model.Image != null && !model.Image.ValidImage())
                    {
                        ModelState.AddModelError("", _localizer["Invalid image type"]);
                        _toastNotification.AddErrorToastMessage(_localizer["Invalid image type"]);
                        return(View(model));
                    }

                    var latLng = await MapMethods.ConvertAddressToLocationAsync(model.Address);

                    if (latLng == null)
                    {
                        ModelState.AddModelError("", _localizer["Sorry, we can't recognize this address"]);
                        _toastNotification.AddErrorToastMessage(_localizer["Sorry, we can't recognize this address"]);
                        return(View(model));
                    }

                    var user = await _userManager.GetUserAsync(User);

                    user.VendorsCount++;
                    await _userManager.UpdateAsync(user);

                    var vendor = new Vendor();
                    vendor.UserID    = user.Id;
                    vendor.Latitude  = latLng.Item1;
                    vendor.Longitude = latLng.Item2;

                    model.SetValuesToVendor(vendor);
                    await _vendorService.CreateAsync(vendor);

                    var serviceOperatingHours = model.VendorHours;

                    foreach (var elem in serviceOperatingHours)
                    {
                        if (elem.IsWorking)
                        {
                            if (elem.CloseTime < elem.OpenTime)
                            {
                                ModelState.AddModelError("", "Invalid work hours");
                                _toastNotification.AddErrorToastMessage("Choose appropriate working hours");
                                await _vendorService.DeleteAsync(vendor);

                                return(View(model));
                            }

                            else
                            {
                                var workHours = new WorkHours(vendor.ID, elem.IsWorking, elem.Day, elem.OpenTime, elem.CloseTime);
                                await _vendorService.AddWorkHoursAsync(workHours);
                            }
                        }
                        else
                        {
                            var timeSpan  = new TimeSpan(0);
                            var workHours = new WorkHours(vendor.ID, elem.IsWorking, elem.Day, timeSpan, timeSpan);
                            await _vendorServiceADO.InsertWorkHoursAsync(workHours);
                        }
                    }

                    _toastNotification.AddSuccessToastMessage(_localizer["Service Created"]);
                    return(RedirectToAction("MyVendors"));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                _toastNotification.AddErrorToastMessage(ex.Message);
            }

            return(View(model));
        }