示例#1
0
        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));
        }
示例#2
0
        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 }));
        }