public async Task <IActionResult> Edit(Ad model) { if (model != null || ModelState.IsValid) { Ad ad = context.Ads.Find(model.Id); if (ad == null) { return(NotFound()); } ad = model; context.Update(ad); await context.SaveChangesAsync(); return(RedirectToAction(nameof(ShowAd), new { Category = ad.Category.Title, AdId = ad.Id })); } return(View(model)); }
public async Task <IActionResult> TranslateProperty(PropertyTranslationViewModel model) { Property property = await context.Properties .Where(p => p.Id == model.Property.Id) .Include(p => p.Name) .ThenInclude(te => te.Translations) .Include(p => p.Description) .ThenInclude(te => te.Translations) .FirstOrDefaultAsync(); if (property == null) { return(NotFound()); } Language language = await context.Languages .Where(lang => lang.Code == model.Language.Code) .SingleOrDefaultAsync(); if (language == null) { return(NotFound()); } long nameId = property.Name.Translations .Where(t => t.LanguageCode == language.Code) .Select(t => t.Id) .SingleOrDefault(); long descriptionId = property.Description.Translations .Where(t => t.LanguageCode == language.Code) .Select(t => t.Id) .SingleOrDefault(); if (nameId != 0) { Translation translation = await context.Translations .Where(t => t.Id == nameId) .FirstOrDefaultAsync(); translation.Modify(model.TranslatedName); context.Update(translation); } else { property.Name.Translations.Add(new Translation() { Value = model.TranslatedName, LanguageCode = model.Language.Code }); } if (descriptionId != 0) { Translation translation = await context.Translations .Where(t => t.Id == descriptionId) .FirstOrDefaultAsync(); translation.Modify(model.TranslatedDescription); context.Update(translation); } else { property.Description.Translations.Add(new Translation() { Value = model.TranslatedDescription, LanguageCode = model.Language.Code }); } await context.SaveChangesAsync(); return(RedirectToAction(nameof(ManagePropertyTranslations), new { PropertyId = model.Property.Id })); }