public async Task <IActionResult> EditObjectBasic(EditObjectViewModel model) { var userId = _userManager.GetUserId(User); if (IsUserAuthorized(userId, model.IdentUserId) || (await IsCurrentUserInRoleAsync("ADMIN"))) { Objects myobject = new Objects() { Id = model.Id, Name = model.Name, Lat = model.Lat, Lng = model.Lng, Address = model.Address, EmailContact = model.EmailContact, PhoneNumberContact = model.PhoneNumberContact, WebContact = model.WebContact, Description = model.Description, Surface = model.Surface, CountryId = Convert.ToInt32(model.SelectedCountry) == 0 ? null : (int?)Convert.ToInt32(model.SelectedCountry), CityId = Convert.ToInt32(model.SelectedCity) == 0 ? null : (int?)Convert.ToInt32(model.SelectedCity), ObjectTypeId = Convert.ToInt32(model.SelectedObjectType) == 0 ? null : (int?)Convert.ToInt32(model.SelectedObjectType), FullAddress = model.Address + (Convert.ToInt32(model.SelectedCity) == 0 ? "" : _touristObject.GetCityName(Convert.ToInt32(model.SelectedCity))) + (Convert.ToInt32(model.SelectedCity) == 0 ? "" : _touristObject.GetCoutnryName(Convert.ToInt32(model.SelectedCountry))), }; _touristObject.EditObjectBasic(myobject); ViewData["Notification"] = "Uspješno sačuvane izmjene"; return(RedirectToAction("EditObject", "Object", new { id = model.Id })); } var unsucessfulmodel = new ErrorViewModel() { RequestId = 403.ToString(), }; return(View("~/Views/Shared/Error.cshtml", unsucessfulmodel)); }
public async Task <IActionResult> AddPeriod(EditObjectViewModel model) { var userId = _userManager.GetUserId(User); if (IsUserAuthorized(userId, model.IdentUserId) || (await IsCurrentUserInRoleAsync("ADMIN"))) { if (!string.IsNullOrWhiteSpace(model.UnavailablePeriodsString)) { model.UnavailablePeriods = (_touristObject.ParseDates(model.UnavailablePeriodsString)) .Select(item => new UnavailablePeriods() { From = item.Key, To = item.Value }).ToList(); } var id = _touristObject.AddPeriod(model.UnavailablePeriods[0], model.Id); return(Json(id)); } var unsucessfulmodel = new ErrorViewModel() { RequestId = 403.ToString(), }; return(View("~/Views/Shared/Error.cshtml", unsucessfulmodel)); }
public async Task <IActionResult> EditStandardModel(EditObjectViewModel model) { var userId = _userManager.GetUserId(User); if (IsUserAuthorized(userId, model.IdentUserId) || (await IsCurrentUserInRoleAsync("ADMIN"))) { model.OccupancyPricing = false; if (!CheckPricing(model)) { TempData["Error-Notification"] = "Ispravno popunite neophodna polja!"; return(RedirectToAction("EditObject", new { id = model.Id })); } var currency = Request.Cookies["Currency"] == null ? "BAM" : Request.Cookies["Currency"]; if (model.StandardPricingModel.Id == 0) { _touristObject.DeleteOccupancyBasedModel(model.Id); await _touristObject.AddStandardModel(model.StandardPricingModel, model.Id, currency); } else { await _touristObject.EditStandardModel(model.StandardPricingModel, currency); } ViewData["Notification"] = "Uspješno sačuvane izmjene"; return(RedirectToAction("EditObject", new { id = model.Id })); } var unsucessfulmodel = new ErrorViewModel() { RequestId = 403.ToString(), }; return(View("~/Views/Shared/Error.cshtml", unsucessfulmodel)); }
public IActionResult DeleteImage(EditObjectViewModel model) { _touristObject.DeleteImage(model.DeleteImageId); var relativelocation = model.DeleteImagePath.Remove(0, 1); var path = Path.Combine(_hostingEnvironment.WebRootPath, relativelocation); if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); } return(Ok()); }
private bool CheckPricing(EditObjectViewModel model) { if ((!model.OccupancyPricing) && ((model.StandardPricingModel.StandardOccupancy == null || model.StandardPricingModel.OffsetPercentage == null || model.StandardPricingModel.MinOccupancy == null || model.StandardPricingModel.MaxOccupancy == null) || model.StandardPricingModel.StandardOccupancy < model.StandardPricingModel.MinOccupancy || model.StandardPricingModel.StandardOccupancy > model.StandardPricingModel.MaxOccupancy)) { return(false); } if (model.OccupancyPricing && (model.OccupancyBasedPricing.MaxOccupancy == null || model.OccupancyBasedPricing.MinOccupancy == null || model.OccubancBasedPrices == null)) { return(false); } return(true); }
public async Task <IActionResult> DeleteSpecialOffer(EditObjectViewModel model) { var userId = _userManager.GetUserId(User); if (IsUserAuthorized(userId, model.IdentUserId) || (await IsCurrentUserInRoleAsync("ADMIN"))) { _touristObject.DeleteSpecialOffer(model.Id, model.DeleteSpecialOfferId); return(Ok()); } var unsucessfulmodel = new ErrorViewModel() { RequestId = 403.ToString(), }; return(View("~/Views/Shared/Error.cshtml", unsucessfulmodel)); }
public async Task <IActionResult> EditObject(int id) { var currency = Request.Cookies["Currency"] == null ? "BAM" : Request.Cookies["Currency"]; var myobject = await _touristObject.GetObject(id, currency); var userId = _userManager.GetUserId(User); if ((!IsUserAuthorized(userId, myobject.IdentUserId)) && (!(await IsCurrentUserInRoleAsync("ADMIN")))) { var unsucessfulmodel = new ErrorViewModel() { RequestId = 403.ToString(), }; return(View("~/Views/Shared/Error.cshtml", unsucessfulmodel)); } var model = new EditObjectViewModel() { Id = myobject.Id, Name = myobject.Name, Lat = myobject.Lat, Lng = myobject.Lng, Address = myobject.Address, EmailContact = myobject.EmailContact, PhoneNumberContact = myobject.PhoneNumberContact, WebContact = myobject.WebContact, Description = myobject.Description, UnavailablePeriods = myobject.UnavailablePeriods.Where(up => DateTime.Compare(DateTime.Now, up.To) <= 0).ToList(), ListOfAddedOffers = myobject.ObjectHasAttributes.ToList(), ListOfAddedCntOffers = myobject.CntObjAttributesCount.ToList(), ListOfAddedSpecialOffers = myobject.SpecialOffers.ToList(), Surface = myobject.Surface, OccupancyPricing = myobject.OccupancyPricing, OccupancyBasedPricing = myobject.OccupancyBasedPricing, StandardPricingModel = myobject.StandardPricingModel, IdentUserId = myobject.IdentUserId, SelectedCity = myobject.CityId == null ? null : myobject.CityId.ToString(), SelectedCountry = myobject.CountryId == null ? null : myobject.CountryId.ToString(), SelectedObjectType = myobject.ObjectTypeId == null ? null : myobject.ObjectTypeId.ToString(), ImgsSrc = myobject.ObjectImages.ToList(), }; model = FillSelectLists(model); return(View(model)); }
public async Task <IActionResult> EditOccupancyBased(EditObjectViewModel model) { var userId = _userManager.GetUserId(User); if (IsUserAuthorized(userId, model.IdentUserId) || (await IsCurrentUserInRoleAsync("ADMIN"))) { model.OccupancyPricing = true; if ((!string.IsNullOrWhiteSpace(model.OccubancBasedPrices))) { model.OccupancyBasedPricing.Prices = (_touristObject.ParseStringToKeyValue(model.OccubancBasedPrices)) .Select(item => new OccupancyBasedPrices() { Occupancy = item.Key, PricePerNight = item.Value }).ToList(); } if (!CheckPricing(model)) { TempData["Error-Notification"] = "Ispravno popunite neophodna polja!"; return(RedirectToAction("EditObject", new { id = model.Id }));; } var currency = Request.Cookies["Currency"] == null ? "BAM" : Request.Cookies["Currency"]; if (model.OccupancyBasedPricing.Id != 0) { await _touristObject.NewOccupancyBasedPricing(model.OccupancyBasedPricing, model.Id, currency); } else { _touristObject.DeleteStandardModel(model.Id); await _touristObject.AddOccupancyBasedModel(model.OccupancyBasedPricing, model.Id, currency); } ViewData["Notification"] = "Uspješno sačuvane izmjene"; return(RedirectToAction("EditObject", new { id = model.Id })); } var unsucessfulmodel = new ErrorViewModel() { RequestId = 403.ToString(), }; return(View("~/Views/Shared/Error.cshtml", unsucessfulmodel)); }
public async Task <JsonResult> AddNewImage(EditObjectViewModel model) { var file = model.ImageFile; var filename = file.FileName; if (file != null) { try { if (System.IO.File.Exists(Path.Combine(_hostingEnvironment.WebRootPath, "UploadedImages", filename))) { var extension = Path.GetExtension(filename); //unique file name filename = string.Format(@"{0}" + extension, Guid.NewGuid()); } var path = Path.Combine(_hostingEnvironment.WebRootPath, "UploadedImages", filename); using (var fileStream = new FileStream(path, FileMode.Create)) { await file.CopyToAsync(fileStream); } var img = new ObjectImages() { Path = "/UploadedImages/" + filename, }; var imgid = _touristObject.AddImage(img, model.Id); var response = @"{imgname:'" + filename + "',imgid:" + imgid + "}"; JObject json = JObject.Parse(response); var oks = Json(json); return(Json(json)); } catch (Exception) { System.Diagnostics.Debug.WriteLine("Error while copying"); } } return(Json("Not found")); }
public async Task <IActionResult> AddObjectHasAttribute(EditObjectViewModel model) { var userId = _userManager.GetUserId(User); if (IsUserAuthorized(userId, model.IdentUserId) || (await IsCurrentUserInRoleAsync("ADMIN"))) { var objHasAttribute = new ObjectHasAttributes() { ObjectId = model.Id, AttributeId = model.AddAttributeId, }; _touristObject.AddObjectHasAttribute(objHasAttribute); return(Ok()); } var unsucessfulmodel = new ErrorViewModel() { RequestId = 403.ToString(), }; return(View("~/Views/Shared/Error.cshtml", unsucessfulmodel)); }
private EditObjectViewModel FillSelectLists(EditObjectViewModel model) { IEnumerable <Countries> countries = _touristObject.GetCountries(); model.Countries = countries.Select(c => new SelectListItem() { Text = c.Name, Value = c.Id.ToString() }).ToList(); if (!String.IsNullOrWhiteSpace(model.SelectedCountry)) { IEnumerable <Cities> cities = _touristObject.GetCitiesFromCountry(Convert.ToInt32(model.SelectedCountry)); model.Cities = cities.Select(c => new SelectListItem() { Text = c.Name, Value = c.Id.ToString() }).ToList(); } IEnumerable <ObjectTypes> objecttypes = _touristObject.GetObjectTypes(); model.ObjectTypes = objecttypes.Select(ot => new SelectListItem() { Text = ot.Name, Value = ot.Id.ToString() }).ToList(); IEnumerable <ObjectAttributes> attributes = _touristObject.GetAllObjectAttributes(); model.Offers = attributes.Select(a => new SelectListItem() { Text = a.Name, Value = a.Id.ToString() }).ToList(); model.SpecialOffers = model.Offers; IEnumerable <CountableObjectAttributes> cntOffers = _touristObject.GetAllCountableObjectAttributes(); model.CountableOffers = cntOffers.Select(co => new SelectListItem() { Text = co.Name, Value = co.Id.ToString() }).ToList(); return(model); }