divan/RMuseum/Models/Artifact/ViewModels/RArtifactItemRecordViewModel.cs
Hamid Reza Mohammadi 5991d7fa5f Add project files.
2020-08-14 21:06:22 +04:30

100 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
namespace RMuseum.Models.Artifact.ViewModels
{
/// <summary>
/// RArtifactItemRecord with additional info
/// </summary>
public class RArtifactItemRecordViewModel
{
private RArtifactItemRecord _Item;
/// <summary>
/// main item info
/// </summary>
public RArtifactItemRecord Item
{
get
{
return _Item;
}
set
{
_Item = value;
List<RArtifactTagViewModel> rItemTags = new List<RArtifactTagViewModel>();
if (_Item != null && _Item.Tags != null)
{
foreach (RTagValue tag in _Item.Tags)
{
RArtifactTagViewModel related = rItemTags.Where(t => t.Id == tag.RTagId).SingleOrDefault();
List<RTagValue> values = (related == null) ? new List<RTagValue>() : new List<RTagValue>(related.Values);
if (related == null)
{
related = new RArtifactTagViewModel(tag.RTag);
rItemTags.Add(related);
}
values.Add(tag);
values.Sort((a, b) => a.Order - b.Order);
related.Values = values;
}
rItemTags.Sort((a, b) => a.Order - b.Order);
}
FormattedTags = rItemTags;
}
}
/// <summary>
/// parent
/// </summary>
public string ParentFriendlyUrl { get; set; }
/// <summary>
/// parent name
/// </summary>
public string ParentName { get; set; }
/// <summary>
/// parent image
/// </summary>
public Guid ParentImageId { get; set; }
/// <summary>
/// parent item count
/// </summary>
public int ParentItemCount { get; set; }
/// <summary>
/// empty or null means this is last item
/// </summary>
public string NextItemFriendlyUrl { get; set; }
/// <summary>
/// next image
/// </summary>
public Guid? NextItemImageId { get; set; }
/// <summary>
/// empty or null means this is first item
/// </summary>
public string PreviousItemFriendlyUrl { get; set; }
/// <summary>
/// prev image
/// </summary>
public Guid? PrevItemImageId { get; set; }
/// <summary>
/// Formatted Tags
/// </summary>
public ICollection<RArtifactTagViewModel> FormattedTags { get; set; }
}
}