コード例 #1
0
            public CardSelectedVersionDiffWithCurrentResult(GetCardForEdit.ResultModel card, GetCardVersion.Result selectedVersion, ILocalized localizer)
            {
                FirstVersionUtcDate        = card.FirstVersionUtcDate;
                LastVersionUtcDate         = card.LastVersionUtcDate;
                LastVersionCreatorName     = card.LastVersionCreatorName;
                LastVersionDescription     = card.LastVersionDescription;
                InfoAboutUsage             = card.UsersOwningDeckIncluding.Any() ? localizer.Get("AppearsInDecksOf") + ' ' + string.Join(',', card.UsersOwningDeckIncluding) : localizer.Get("NotIncludedInAnyDeck");
                AverageRating              = card.AverageRating;
                CountOfUserRatings         = card.CountOfUserRatings;
                SelectedVersionUtcDate     = selectedVersion.VersionUtcDate;
                SelectedVersionDescription = selectedVersion.VersionDescription;
                SelectedVersionCreatorName = selectedVersion.CreatorName;

                var changedFields   = new List <string>();
                var unChangedFields = new List <string>();

                AddField(changedFields, unChangedFields, "FrontSide", card.FrontSide, selectedVersion.FrontSide, localizer);
                AddField(changedFields, unChangedFields, "BackSide", card.BackSide, selectedVersion.BackSide, localizer);
                AddField(changedFields, unChangedFields, "AdditionalInfo", card.AdditionalInfo, selectedVersion.AdditionalInfo, localizer);
                AddField(changedFields, unChangedFields, "LanguageName", card.LanguageName, selectedVersion.LanguageName, localizer);

                var cardTags    = card.Tags.Any() ? string.Join(",", card.Tags.Select(t => t.TagName).OrderBy(name => name)) : localizer.Get("NoneMasc");
                var versionTags = selectedVersion.Tags.Any() ? string.Join(",", selectedVersion.Tags.OrderBy(name => name)) : localizer.Get("NoneMasc");

                AddField(changedFields, unChangedFields, card.Tags.Count() > 1 && selectedVersion.Tags.Count() > 1 ? "Tags" : "Tag", cardTags, versionTags, localizer);

                var cardVisibility    = card.UsersWithVisibility.Any() ? string.Join(",", card.UsersWithVisibility.Select(u => u.UserName).OrderBy(name => name)) : localizer.Get("Public");
                var versionVisibility = selectedVersion.UsersWithVisibility.Any() ? string.Join(",", selectedVersion.UsersWithVisibility.OrderBy(name => name)) : localizer.Get("Public");

                AddField(changedFields, unChangedFields, "Visibility", cardVisibility, versionVisibility, localizer);

                var cardFrontSideImageNames       = card.Images.Where(i => i.CardSide == ImageInCard.FrontSide).Select(i => i.Name).OrderBy(name => name);
                var cardFrontSideImageNamesJoined = cardFrontSideImageNames.Any() ? string.Join(",", cardFrontSideImageNames) : localizer.Get("NoneFeminine");
                var versionFrontSideImages        = selectedVersion.FrontSideImageNames.Any() ? string.Join(",", selectedVersion.FrontSideImageNames.OrderBy(name => name)) : localizer.Get("NoneFeminine");

                AddField(changedFields, unChangedFields, "FrontSideImages", cardFrontSideImageNamesJoined, versionFrontSideImages, localizer);

                var cardBackSideImageNames       = card.Images.Where(i => i.CardSide == ImageInCard.BackSide).Select(i => i.Name).OrderBy(name => name);
                var cardBackSideImageNamesJoined = cardBackSideImageNames.Any() ? string.Join(",", cardBackSideImageNames) : localizer.Get("NoneFeminine");
                var versionBackSideImages        = selectedVersion.BackSideImageNames.Any() ? string.Join(",", selectedVersion.BackSideImageNames.OrderBy(name => name)) : localizer.Get("NoneFeminine");

                AddField(changedFields, unChangedFields, "BackSideImages", cardBackSideImageNamesJoined, versionBackSideImages, localizer);

                var cardAdditionalImageNames       = card.Images.Where(i => i.CardSide == ImageInCard.AdditionalInfo).Select(i => i.Name).OrderBy(name => name);
                var cardAdditionalImageNamesJoined = cardAdditionalImageNames.Any() ? string.Join(",", cardAdditionalImageNames) : localizer.Get("NoneFeminine");
                var versionAdditionalImages        = selectedVersion.AdditionalInfoImageNames.Any() ? string.Join(",", selectedVersion.AdditionalInfoImageNames.OrderBy(name => name)) : localizer.Get("NoneFeminine");

                AddField(changedFields, unChangedFields, "AdditionalInfoImages", cardAdditionalImageNamesJoined, versionAdditionalImages, localizer);

                ChangedFields   = changedFields;
                UnchangedFields = unChangedFields;
            }
コード例 #2
0
 public GetCardForEditViewModel(GetCardForEdit.ResultModel applicationResult, IStringLocalizer <AuthoringController> localizer)
 {
     FrontSide           = applicationResult.FrontSide;
     BackSide            = applicationResult.BackSide;
     AdditionalInfo      = applicationResult.AdditionalInfo;
     LanguageId          = applicationResult.LanguageId;
     Tags                = applicationResult.Tags.Select(tag => new GetAllAvailableTagsViewModel(tag.TagId, tag.TagName));
     UsersWithVisibility = applicationResult.UsersWithVisibility.Select(user => new GetUsersViewModel(user.UserId, user.UserName));
     CreationUtcDate     = applicationResult.CreationUtcDate;
     LastChangeUtcDate   = applicationResult.LastChangeUtcDate;
     InfoAboutUsage      = applicationResult.UsersOwningDeckIncluding.Count() > 0 ? localizer["AppearsInDecksOf"].Value + ' ' + string.Join(',', applicationResult.UsersOwningDeckIncluding) : localizer["NotIncludedInAnyDeck"].Value;
     Images              = applicationResult.Images.Select(applicationImage => new GetCardForEditImageViewModel(applicationImage, localizer));
     CurrentUserRating   = applicationResult.UserRating;
     AverageRating       = Math.Round(applicationResult.AverageRating, 1);
     CountOfUserRatings  = applicationResult.CountOfUserRatings;
 }