Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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());
        }
Exemple #5
0
 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);
 }
Exemple #6
0
        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));
        }
Exemple #7
0
        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));
        }
Exemple #8
0
        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));
        }
Exemple #9
0
        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"));
        }
Exemple #10
0
        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));
        }
Exemple #11
0
        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);
        }