public async Task <ActionResult> ListingTypesPartial(int categoryID, int listingID) { var model = new ListingUpdateModel(); model.ListingTypes = CacheHelper.ListingTypes.Where(x => x.CategoryListingTypes.Any(y => y.CategoryID == categoryID)).ToList(); model.ListingItem = new Listing(); if (listingID > 0) { model.ListingItem = await _listingService.FindAsync(listingID); } model.ListingTypeID = model.ListingItem.ListingTypeID; return(PartialView("_ListingTypes", model)); }
public async Task <ActionResult> ListingUpdate(Listing listing, FormCollection form, IEnumerable <HttpPostedFileBase> files) { if (CacheHelper.Categories.Count == 0) { TempData[TempDataKeys.UserMessageAlertState] = "bg-danger"; TempData[TempDataKeys.UserMessage] = "[[[There are not categories available yet.]]]"; return(RedirectToAction("Listing", new { id = listing.ID })); } var userIdCurrent = User.Identity.GetUserId(); // Register account if not login if (!User.Identity.IsAuthenticated) { var accountController = BeYourMarket.Core.ContainerManager.GetConfiguredContainer().Resolve <AccountController>(); var modelRegister = new RegisterViewModel() { Email = listing.ContactEmail, Password = form["Password"], ConfirmPassword = form["ConfirmPassword"], }; // Parse first and last name var names = listing.ContactName.Split(' '); if (names.Length == 1) { modelRegister.FirstName = names[0]; } else if (names.Length == 2) { modelRegister.FirstName = names[0]; modelRegister.LastName = names[1]; } else if (names.Length > 2) { modelRegister.FirstName = names[0]; modelRegister.LastName = listing.ContactName.Substring(listing.ContactName.IndexOf(" ") + 1); } // Register account var resultRegister = await accountController.RegisterAccount(modelRegister); // Add errors AddErrors(resultRegister); // Show errors if not succeed if (!resultRegister.Succeeded) { var model = new ListingUpdateModel() { ListingItem = listing }; // Populate model with listing await PopulateListingUpdateModel(listing, model); return(View("ListingUpdate", model)); } // update current user id var user = await UserManager.FindByNameAsync(listing.ContactEmail); userIdCurrent = user.Id; } bool updateCount = false; int nextPictureOrderId = 0; // Set default listing type ID if (listing.ListingTypeID == 0) { var listingType = CacheHelper.ListingTypes.Where(x => x.CategoryListingTypes.Any(y => y.CategoryID == listing.CategoryID)); if (listingType == null) { TempData[TempDataKeys.UserMessageAlertState] = "bg-danger"; TempData[TempDataKeys.UserMessage] = "[[[There are not listing types available yet.]]]"; return(RedirectToAction("Listing", new { id = listing.ID })); } listing.ListingTypeID = listingType.FirstOrDefault().ID; } if (listing.ID == 0) { listing.ObjectState = Repository.Pattern.Infrastructure.ObjectState.Added; listing.IP = Request.GetVisitorIP(); listing.Expiration = DateTime.MaxValue.AddDays(-1); listing.UserID = userIdCurrent; listing.Enabled = true; listing.Currency = CacheHelper.Settings.Currency; updateCount = true; _listingService.Insert(listing); } else { if (await NotMeListing(listing.ID)) { return(new HttpUnauthorizedResult()); } var listingExisting = await _listingService.FindAsync(listing.ID); listingExisting.Title = listing.Title; listingExisting.Description = listing.Description; listingExisting.Active = listing.Active; listingExisting.Price = listing.Price; listingExisting.ContactEmail = listing.ContactEmail; listingExisting.ContactName = listing.ContactName; listingExisting.ContactPhone = listing.ContactPhone; listingExisting.Latitude = listing.Latitude; listingExisting.Longitude = listing.Longitude; listingExisting.Location = listing.Location; listingExisting.ShowPhone = listing.ShowPhone; listingExisting.ShowEmail = listing.ShowEmail; listingExisting.CategoryID = listing.CategoryID; listingExisting.ListingTypeID = listing.ListingTypeID; listingExisting.ObjectState = Repository.Pattern.Infrastructure.ObjectState.Modified; _listingService.Update(listingExisting); } // Delete existing fields on item var customFieldItemQuery = await _customFieldListingService.Query(x => x.ListingID == listing.ID).SelectAsync(); var customFieldIds = customFieldItemQuery.Select(x => x.ID).ToList(); foreach (var customFieldId in customFieldIds) { await _customFieldListingService.DeleteAsync(customFieldId); } // Get custom fields var customFieldCategoryQuery = await _customFieldCategoryService.Query(x => x.CategoryID == listing.CategoryID).Include(x => x.MetaField.ListingMetas).SelectAsync(); var customFieldCategories = customFieldCategoryQuery.ToList(); foreach (var metaCategory in customFieldCategories) { var field = metaCategory.MetaField; var controlType = (BeYourMarket.Model.Enum.Enum_MetaFieldControlType)field.ControlTypeID; string controlId = string.Format("customfield_{0}_{1}_{2}", metaCategory.ID, metaCategory.CategoryID, metaCategory.FieldID); var formValue = form[controlId]; if (string.IsNullOrEmpty(formValue)) { continue; } formValue = formValue.ToString(); var itemMeta = new ListingMeta() { ListingID = listing.ID, Value = formValue, FieldID = field.ID, ObjectState = Repository.Pattern.Infrastructure.ObjectState.Added }; _customFieldListingService.Insert(itemMeta); } await _unitOfWorkAsync.SaveChangesAsync(); if (Request.Files.Count > 0) { var itemPictureQuery = _listingPictureservice.Queryable().Where(x => x.ListingID == listing.ID); if (itemPictureQuery.Count() > 0) { nextPictureOrderId = itemPictureQuery.Max(x => x.Ordering); } } if (files != null && files.Count() > 0) { foreach (HttpPostedFileBase file in files) { if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName)) { // Picture picture and get id var picture = new Picture(); picture.MimeType = "image/jpeg"; _pictureService.Insert(picture); await _unitOfWorkAsync.SaveChangesAsync(); // Format is automatically detected though can be changed. ISupportedImageFormat format = new JpegFormat { Quality = 90 }; Size size = new Size(500, 0); //https://naimhamadi.wordpress.com/2014/06/25/processing-images-in-c-easily-using-imageprocessor/ // Initialize the ImageFactory using the overload to preserve EXIF metadata. using (ImageFactory imageFactory = new ImageFactory(preserveExifData: true)) { var path = Path.Combine(Server.MapPath("~/images/listing"), string.Format("{0}.{1}", picture.ID.ToString("00000000"), "jpg")); // Load, resize, set the format and quality and save an image. imageFactory.Load(file.InputStream) .Resize(size) .Format(format) .Save(path); } var itemPicture = new ListingPicture(); itemPicture.ListingID = listing.ID; itemPicture.PictureID = picture.ID; itemPicture.Ordering = nextPictureOrderId; _listingPictureservice.Insert(itemPicture); nextPictureOrderId++; } } } await _unitOfWorkAsync.SaveChangesAsync(); // Update statistics count if (updateCount) { _sqlDbService.UpdateCategoryItemCount(listing.CategoryID); _dataCacheService.RemoveCachedItem(CacheKeys.Statistics); } TempData[TempDataKeys.UserMessage] = "[[[Listing is updated!]]]"; return(RedirectToAction("Listing", new { id = listing.ID })); }
public async Task <ActionResult> ListingUpdate(int?id) { if (CacheHelper.Categories.Count == 0) { TempData[TempDataKeys.UserMessageAlertState] = "bg-danger"; TempData[TempDataKeys.UserMessage] = "[[[There are not categories available yet.]]]"; } Listing item; var model = new ListingUpdateModel() { Categories = CacheHelper.Categories }; if (id.HasValue) { item = await _listingService.FindAsync(id); if (item == null) { return(new HttpNotFoundResult()); } // Pictures var pictures = await _listingPictureservice.Query(x => x.ListingID == id).SelectAsync(); var picturesModel = pictures.Select(x => new PictureModel() { ID = x.PictureID, Url = ImageHelper.GetListingImagePath(x.PictureID), ListingID = x.ListingID, Ordering = x.Ordering }).OrderBy(x => x.Ordering).ToList(); model.Pictures = picturesModel; } else { item = new Listing() { CategoryID = CacheHelper.Categories.Any() ? CacheHelper.Categories.FirstOrDefault().ID : 0, Created = DateTime.Now.Date, LastUpdated = DateTime.Now.Date, Expiration = DateTime.Now.AddDays(30), Enabled = true, Active = true, } }; // Item model.ListingItem = item; // Custom fields var customFieldCategoryQuery = await _customFieldCategoryService.Query(x => x.CategoryID == item.CategoryID).Include(x => x.MetaField.ListingMetas).SelectAsync(); var customFieldCategories = customFieldCategoryQuery.ToList(); var customFieldModel = new CustomFieldListingModel() { ListingID = item.ID, MetaCategories = customFieldCategories }; model.CustomFields = customFieldModel; model.Users = UserManager.Users.ToList(); model.UserID = item.UserID; model.CategoryID = item.CategoryID; model.ListingTypeID = item.ListingTypeID; // Listing types model.ListingTypes = CacheHelper.ListingTypes.Where(x => x.CategoryListingTypes.Any(y => y.CategoryID == model.CategoryID)).ToList(); return(View(model)); }
private async Task <ListingUpdateModel> PopulateListingUpdateModel(Listing listing, ListingUpdateModel model) { model.ListingItem = listing; // Custom fields var customFieldCategoryQuery = await _customFieldCategoryService.Query(x => x.CategoryID == listing.CategoryID).Include(x => x.MetaField.ListingMetas).SelectAsync(); var customFieldCategories = customFieldCategoryQuery.ToList(); var customFieldModel = new CustomFieldListingModel() { ListingID = listing.ID, MetaCategories = customFieldCategories }; model.CustomFields = customFieldModel; model.UserID = listing.UserID; model.CategoryID = listing.CategoryID; model.ListingTypeID = listing.ListingTypeID; // Listing types model.ListingTypes = CacheHelper.ListingTypes.Where(x => x.CategoryListingTypes.Any(y => y.CategoryID == model.CategoryID)).ToList(); // Listing Categories model.Categories = CacheHelper.Categories; return(model); }
public async Task <ActionResult> ListingUpdate(int?id) { if (CacheHelper.Categories.Count == 0) { TempData[TempDataKeys.UserMessageAlertState] = "bg-danger"; TempData[TempDataKeys.UserMessage] = "[[[There are not categories available yet.]]]"; } Listing listing; var userId = User.Identity.GetUserId(); var user = await UserManager.FindByIdAsync(userId); var model = new ListingUpdateModel() { Categories = CacheHelper.Categories }; if (id.HasValue) { // return unauthorized if not authenticated if (!User.Identity.IsAuthenticated) { return(new HttpUnauthorizedResult()); } if (await NotMeListing(id.Value)) { return(new HttpUnauthorizedResult()); } listing = await _listingService.FindAsync(id); if (listing == null) { return(new HttpNotFoundResult()); } // Pictures var pictures = await _listingPictureservice.Query(x => x.ListingID == id).SelectAsync(); var picturesModel = pictures.Select(x => new PictureModel() { ID = x.PictureID, Url = ImageHelper.GetListingImagePath(x.PictureID), ListingID = x.ListingID, Ordering = x.Ordering }).OrderBy(x => x.Ordering).ToList(); model.Pictures = picturesModel; } else { listing = new Listing() { CategoryID = CacheHelper.Categories.Any() ? CacheHelper.Categories.FirstOrDefault().ID : 0, Created = DateTime.Now.Date, LastUpdated = DateTime.Now.Date, Expiration = DateTime.MaxValue, Enabled = true, Active = true, }; if (User.Identity.IsAuthenticated) { listing.ContactEmail = user.Email; listing.ContactName = string.Format("{0} {1}", user.FirstName, user.LastName); listing.ContactPhone = user.PhoneNumber; } } // Populate model with listing await PopulateListingUpdateModel(listing, model); return(View("~/Views/Listing/ListingUpdate.cshtml", model)); }
public async Task <ActionResult> ListingUpdate(int?id) { if (CacheHelper.Categories.Count == 0) { TempData[TempDataKeys.UserMessageAlertState] = "bg-danger"; TempData[TempDataKeys.UserMessage] = "[[[There are not categories available yet.]]]"; } Listing item; var userId = User.Identity.GetUserId(); var user = await UserManager.FindByIdAsync(userId); var model = new ListingUpdateModel() { Categories = CacheHelper.Categories }; if (id.HasValue) { // return unauthorized if not authenticated if (!User.Identity.IsAuthenticated) { return(new HttpUnauthorizedResult()); } if (await NotMeListing(id.Value)) { return(new HttpUnauthorizedResult()); } item = await _listingService.FindAsync(id); if (item == null) { return(new HttpNotFoundResult()); } // Pictures var pictures = await _ListingPictureservice.Query(x => x.ListingID == id).SelectAsync(); var picturesModel = pictures.Select(x => new PictureModel() { ID = x.PictureID, Url = ImageHelper.GetListingImagePath(x.PictureID), ListingID = x.ListingID, Ordering = x.Ordering }).OrderBy(x => x.Ordering).ToList(); model.Pictures = picturesModel; } else { item = new Listing() { CategoryID = CacheHelper.Categories.Any() ? CacheHelper.Categories.FirstOrDefault().ID : 0, Created = DateTime.Now.Date, LastUpdated = DateTime.Now.Date, Expiration = DateTime.MaxValue, Enabled = true, Active = true, ContactEmail = user.Email, ContactName = string.Format("{0} {1}", user.FirstName, user.LastName), ContactPhone = user.PhoneNumber }; } // Item model.ListingItem = item; // Custom fields var customFieldCategoryQuery = await _customFieldCategoryService.Query(x => x.CategoryID == item.CategoryID).Include(x => x.MetaField.ListingMetas).SelectAsync(); var customFieldCategories = customFieldCategoryQuery.ToList(); var customFieldModel = new CustomFieldListingModel() { ListingID = item.ID, MetaCategories = customFieldCategories }; model.CustomFields = customFieldModel; model.UserID = item.UserID; model.CategoryID = item.CategoryID; model.ListingTypeID = item.ListingTypeID; // Listing types model.ListingTypes = CacheHelper.ListingTypes.Where(x => x.CategoryListingTypes.Any(y => y.CategoryID == model.CategoryID)).ToList(); return(View("~/Views/Listing/ListingUpdate.cshtml", model)); }
public async Task <ActionResult> ListingUpdate(Listing listing, FormCollection form, IEnumerable <HttpPostedFileBase> files, int[] idcama, int[] cantidad) { if (CacheHelper.Categories.Count == 0) { TempData[TempDataKeys.UserMessageAlertState] = "bg-danger"; TempData[TempDataKeys.UserMessage] = "[[[There are not categories available yet.]]]"; return(RedirectToAction("Listing", new { id = listing.ID })); } var userIdCurrent = User.Identity.GetUserId(); // Register account if not login if (!User.Identity.IsAuthenticated) { var accountController = BeYourMarket.Core.ContainerManager.GetConfiguredContainer().Resolve <AccountController>(); var modelRegister = new RegisterViewModel() { Email = listing.ContactEmail, Password = form["Password"], ConfirmPassword = form["ConfirmPassword"], }; // Parse first and last name var names = listing.ContactName.Split(' '); if (names.Length == 1) { modelRegister.FirstName = names[0]; } else if (names.Length == 2) { modelRegister.FirstName = names[0]; modelRegister.LastName = names[1]; } else if (names.Length > 2) { modelRegister.FirstName = names[0]; modelRegister.LastName = listing.ContactName.Substring(listing.ContactName.IndexOf(" ") + 1); } // Register account var resultRegister = await accountController.RegisterAccount(modelRegister); // Add errors AddErrors(resultRegister); // Show errors if not succeed if (!resultRegister.Succeeded) { var model = new ListingUpdateModel() { ListingItem = listing }; // Populate model with listing await PopulateListingUpdateModel(listing, model); return(View("ListingUpdate", model)); } // update current user id var user = await UserManager.FindByNameAsync(listing.ContactEmail); userIdCurrent = user.Id; } bool updateCount = false; int nextPictureOrderId = 0; // Set default listing type ID if (listing.ListingTypeID == 0) { var listingTypes = CacheHelper.ListingTypes.Where(x => x.CategoryListingTypes.Any(y => y.CategoryID == listing.CategoryID)); if (listingTypes == null) { TempData[TempDataKeys.UserMessageAlertState] = "bg-danger"; TempData[TempDataKeys.UserMessage] = "[[[There are not listing types available yet.]]]"; return(RedirectToAction("Listing", new { id = listing.ID })); } listing.ListingTypeID = listingTypes.FirstOrDefault().ID; } if (listing.ID == 0) { listing.Title = listing.ID.ToString(); listing.ObjectState = Repository.Pattern.Infrastructure.ObjectState.Added; listing.IP = Request.GetVisitorIP(); listing.Expiration = DateTime.MaxValue.AddDays(-1); listing.UserID = userIdCurrent; listing.Enabled = true; listing.Active = false; listing.Currency = CacheHelper.Settings.Currency; listing.Children = !listing.Children; updateCount = true; _listingService.Insert(listing); } else { if (await NotMeListing(listing.ID)) { return(new HttpUnauthorizedResult()); } var listingExisting = await _listingService.FindAsync(listing.ID); listingExisting.Title = listing.ID.ToString(); listingExisting.Description = listing.Description; listingExisting.Price = listing.Price; listingExisting.ContactEmail = listing.ContactEmail; listingExisting.ContactName = listing.ContactName; listingExisting.ContactPhone = listing.ContactPhone; listingExisting.Latitude = listing.Latitude; listingExisting.Longitude = listing.Longitude; listingExisting.Location = listing.Location; listingExisting.ShowPhone = listing.ShowPhone; listingExisting.ShowEmail = listing.ShowEmail; listingExisting.CategoryID = listing.CategoryID; listingExisting.ListingTypeID = listing.ListingTypeID; //nuevos campos listingExisting.Bathrooms = listing.Bathrooms; listingExisting.Beds = listing.Beds; listingExisting.Cellar = listing.Cellar; listingExisting.Children = !listing.Children; //listingExisting.CleanlinessPrice = listing.CleanlinessPrice; listingExisting.ConditionCheckOut = listing.ConditionCheckOut; listingExisting.ConditionHouse = listing.ConditionHouse; //listingExisting.DescribeCondominium = listing.DescribeCondominium; listingExisting.Description = listing.Description; listingExisting.Dishwasher = listing.Dishwasher; listingExisting.Elevator = listing.Elevator; listingExisting.FirstLine = listing.FirstLine; listingExisting.FloorNumber = listing.FloorNumber; listingExisting.Grill = listing.Grill; listingExisting.M2 = listing.M2; listingExisting.Max_Capacity = listing.Max_Capacity; listingExisting.NroOfParking = listing.NroOfParking; listingExisting.ParkingLot = listing.ParkingLot; listingExisting.Pets = listing.Pets; listingExisting.Rooms = listing.Rooms; listingExisting.SafetyMesh = listing.SafetyMesh; listingExisting.ShortDescription = listing.ShortDescription; listingExisting.Smoker = listing.Smoker; listingExisting.Stay = listing.Stay; listingExisting.Suite = listing.Suite; listingExisting.Terrace = listing.Terrace; listingExisting.Tv = listing.Tv; listingExisting.TV_cable = listing.TV_cable; listingExisting.TypeOfProperty = listing.TypeOfProperty; //listingExisting.Warranty = listing.Warranty; listingExisting.Washer = listing.Washer; listingExisting.Wifi = listing.Wifi; listingExisting.ObjectState = Repository.Pattern.Infrastructure.ObjectState.Modified; _listingService.Update(listingExisting); } // Elimina las fotos var customFieldItemQuery = await _customFieldListingService.Query(x => x.ListingID == listing.ID).SelectAsync(); var customFieldIds = customFieldItemQuery.Select(x => x.ID).ToList(); foreach (var customFieldId in customFieldIds) { await _customFieldListingService.DeleteAsync(customFieldId); } // Elimina las camas var listacama = await _detailBedService.Query(x => x.ListingID == listing.ID).SelectAsync(); var lista = listacama.Select(x => x.ID).ToList(); foreach (var id in lista) { await _detailBedService.DeleteAsync(id); } // Get custom fields var customFieldCategoryQuery = await _customFieldCategoryService.Query(x => x.CategoryID == listing.CategoryID).Include(x => x.MetaField.ListingMetas).SelectAsync(); var customFieldCategories = customFieldCategoryQuery.ToList(); foreach (var metaCategory in customFieldCategories) { var field = metaCategory.MetaField; var controlType = (BeYourMarket.Model.Enum.Enum_MetaFieldControlType)field.ControlTypeID; string controlId = string.Format("customfield_{0}_{1}_{2}", metaCategory.ID, metaCategory.CategoryID, metaCategory.FieldID); var formValue = form[controlId]; if (string.IsNullOrEmpty(formValue)) { continue; } formValue = formValue.ToString(); var itemMeta = new ListingMeta() { ListingID = listing.ID, Value = formValue, FieldID = field.ID, ObjectState = Repository.Pattern.Infrastructure.ObjectState.Added }; _customFieldListingService.Insert(itemMeta); } //ACA PONGO EL TITULO COMO ID await _unitOfWorkAsync.SaveChangesAsync(); if (updateCount) { listing.Title = listing.ID.ToString(); _listingService.Update(listing); await _unitOfWorkAsync.SaveChangesAsync(); } if (Request.Files.Count > 0) { var itemPictureQuery = _listingPictureservice.Queryable().Where(x => x.ListingID == listing.ID); if (itemPictureQuery.Count() > 0) { nextPictureOrderId = itemPictureQuery.Max(x => x.Ordering); } } if (files != null && files.Count() > 0) { foreach (HttpPostedFileBase file in files) { if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName)) { // Picture picture and get id var picture = new Picture(); picture.MimeType = "image/jpeg"; _pictureService.Insert(picture); await _unitOfWorkAsync.SaveChangesAsync(); // Format is automatically detected though can be changed. ISupportedImageFormat format = new JpegFormat { Quality = 90 }; Size size = new Size(500, 0); //https://naimhamadi.wordpress.com/2014/06/25/processing-images-in-c-easily-using-imageprocessor/ // Initialize the ImageFactory using the overload to preserve EXIF metadata. using (ImageFactory imageFactory = new ImageFactory(preserveExifData: true)) { var path = Path.Combine(Server.MapPath("~/images/listing"), string.Format("{0}.{1}", picture.ID.ToString("00000000"), "jpg")); // Load, resize, set the format and quality and save an image. imageFactory.Load(file.InputStream) .Resize(size) .Format(format) .Save(path); } var itemPicture = new ListingPicture(); itemPicture.ListingID = listing.ID; itemPicture.PictureID = picture.ID; itemPicture.Ordering = nextPictureOrderId; _listingPictureservice.Insert(itemPicture); nextPictureOrderId++; } } } await _unitOfWorkAsync.SaveChangesAsync(); //INSERTANDO CAMAS if (idcama != null) { List <int> listaid = new List <int>(); for (int i = 0; i < idcama.Length; i++) { if (listaid.Count != 0) //entra aca cuando no es la primera recorrida { if (!listaid.Contains(idcama[i])) { DetailBed detallecama = new DetailBed(); detallecama.TypeOfBedID = idcama[i]; detallecama.Quantity = cantidad[i]; detallecama.ListingID = listing.ID; _detailBedService.Insert(detallecama); listaid.Add(idcama[i]); } } else //entra primero por no tener ninguna cama en la listaid { DetailBed detallecama = new DetailBed(); detallecama.TypeOfBedID = idcama[i]; detallecama.Quantity = cantidad[i]; detallecama.ListingID = listing.ID; listaid.Add(idcama[i]); _detailBedService.Insert(detallecama); } } } //fin insertando cama //Enviar correo de aviso a administrador var emailorderquery = await _emailTemplateService.Query(x => x.Slug.ToLower() == "listingupdate").SelectAsync(); var templateorder = emailorderquery.Single(); var admin = await _aspNetUserService.Query(x => x.AspNetRoles.Any(z => z.Name == "Administrator")).SelectAsync(); dynamic emailorder = new Postal.Email("Email"); foreach (var administradores in admin) { emailorder.To = administradores.Email; emailorder.From = CacheHelper.Settings.EmailAddress; emailorder.Subject = templateorder.Subject; emailorder.Body = templateorder.Body; emailorder.Name = administradores.FullName; emailorder.Id = listing.ID; EmailHelper.SendEmail(emailorder); } await _unitOfWorkAsync.SaveChangesAsync(); // Update statistics count if (updateCount) { _sqlDbService.UpdateCategoryItemCount(listing.CategoryID); _dataCacheService.RemoveCachedItem(CacheKeys.Statistics); } if (listing.Created.Day.Equals(DateTime.Now.Day)) { TempData[TempDataKeys.UserMessage] = "[[[Listing is updated, contact the provider to activate the service]]]"; Session.Add("focus", "Si"); return(RedirectToAction("listingcalendar", "Manage", new { id = listing.ID })); } else { TempData[TempDataKeys.UserMessage] = "[[[Listing is updated!]]]"; return(RedirectToAction("Listing", new { id = listing.ID })); } }
public async Task <ActionResult> ListingUpdate(int?id) { if (CacheHelper.Categories.Count == 0) { TempData[TempDataKeys.UserMessageAlertState] = "bg-danger"; TempData[TempDataKeys.UserMessage] = "[[[There are not categories available yet.]]]"; } var userId = User.Identity.GetUserId(); var user = await UserManager.FindByIdAsync(userId); var model = new ListingUpdateModel() { Categories = CacheHelper.Categories, TypesOfBeds = CacheHelper.TypesOfBeds }; var listacama = CacheHelper.TypesOfBeds; ViewBag.combobox = new SelectList(listacama, "Id", "Name"); Listing listing; if (id.HasValue) { //return unauthorized if not authenticated if (!User.Identity.IsAuthenticated) { return(new HttpUnauthorizedResult()); } if (await NotMeListing(id.Value)) { return(new HttpUnauthorizedResult()); } listing = await _listingService.FindAsync(id); //listing = await _listingService.Query(x => x.ID == id).Include(x => x.DetailBeds); if (listing == null) { return(new HttpNotFoundResult()); } // Pictures var pictures = await _listingPictureservice.Query(x => x.ListingID == id).SelectAsync(); var picturesModel = pictures.Select(x => new PictureModel() { ID = x.PictureID, Url = ImageHelper.GetListingImagePath(x.PictureID), ListingID = x.ListingID, Ordering = x.Ordering }).OrderBy(x => x.Ordering).ToList(); model.Pictures = picturesModel; var detallecama = await _detailBedService.Query(x => x.ListingID == id).Include(x => x.TypeOfBed).SelectAsync(); model.DetailBeds = detallecama.ToList(); } else { listing = new Listing() { CategoryID = CacheHelper.Categories.Any() ? CacheHelper.Categories.FirstOrDefault().ID : 0, ContactEmail = user.Email, ContactName = string.Format("{0} {1}", user.FirstName, user.LastName), ContactPhone = user.PhoneNumber, Created = DateTime.Now.Date, LastUpdated = DateTime.Now.Date, Expiration = DateTime.MaxValue, Enabled = false, Active = false, Children = true }; } // Populate model with listing await PopulateListingUpdateModel(listing, model); return(View(model)); }