| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- using GreenTree.Nachtragsmanagement.Core.Domain.Deviation;
- using GreenTree.Nachtragsmanagement.Web.Models.Appendix;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- namespace GreenTree.Nachtragsmanagement.Web.Models.Deviation
- {
- public class DeviationDataModel
- : IRequireStatusDataModel, IRequireKindDataModel
- {
- public int Id { get; set; }
- public string CustomNumber { get; set; }
- public string Description { get; set; }
- public DateTime? ReceiptDate { get; set; }
- public DateTime? AppendixDate { get; set; }
- public decimal Value { get; set; }
- public int Percentage { get; set; }
- public decimal PercentageValue { get; set; }
- public int? StatusId { get; set; }
- public string StatusDescription { get; set; }
- public int? KindId { get; set; }
- public string KindDescription { get; set; }
- public string Comment { get; set; }
- public string SiteDescription { get; set; }
- public int? SiteId { get; set; }
- public string AppendixDescription { get; set; }
- public int? AppendixId { get; set; }
- public ICollection<string> DisturbanceEntities { get; set; }
- public ICollection<DisturbanceValueDataModel> DisturbanceValueEntities { get; set; }
- public string DisturbanceValuesDescription
- {
- get
- {
- if (DisturbanceValueEntities == null)
- return String.Empty;
- else
- return String.Join(", ", DisturbanceValueEntities.Select(d => d.Description));
- }
- }
- public DeviationDataModel()
- {
- DisturbanceEntities = new List<string>();
- DisturbanceValueEntities = new List<DisturbanceValueDataModel>();
- }
- public static DeviationDataModel FromDeviation(Core.Domain.Deviation.Deviation deviationEntity, bool newWhenIsNull)
- {
- if (deviationEntity == null && newWhenIsNull)
- return new DeviationDataModel
- {
- Id = -1,
- Percentage = 100
- };
- if (deviationEntity == null && !newWhenIsNull)
- throw new ArgumentNullException("deviationEntity", "Cannot create DeviationDataModel from NULL deviation entity.");
- var model = new DeviationDataModel
- {
- Id = deviationEntity.Id,
- CustomNumber = deviationEntity.CustomNumber,
- Description = deviationEntity.Description,
- ReceiptDate = deviationEntity.ReceiptDate,
- AppendixDate = deviationEntity.AppendixDate,
- Value = deviationEntity.Value.Value,
- Percentage = deviationEntity.Percentage.Value,
- PercentageValue = deviationEntity.Value.Value * ((decimal)deviationEntity.Percentage.Value / (decimal)100),
- SiteId = deviationEntity.SiteId,
- SiteDescription = deviationEntity.Site == null
- ? deviationEntity.Appendix == null
- ? String.Empty
- : deviationEntity.Appendix.Site.CustomNumber
- : deviationEntity.Site.CustomNumber,
- AppendixId = deviationEntity.AppendixId,
- AppendixDescription = deviationEntity.Appendix == null
- ? "Offen"
- : deviationEntity.Appendix.CustomNumber,
- StatusId = deviationEntity.StatusId.Value,
- StatusDescription = deviationEntity.Status == null
- ? null
- : deviationEntity.Status.Description,
- KindId = deviationEntity.KindId.Value,
- KindDescription = deviationEntity.Kind == null
- ? null
- : deviationEntity.Kind.Description,
- Comment = deviationEntity.Comment,
- DisturbanceValueEntities =
- deviationEntity.DisturbanceValues
- .Select(r =>
- new DisturbanceValueDataModel
- {
- DisturbanceId = r.DisturbanceId,
- Description = String.Format("{0} - {1:c2}", r.Disturbance.Description, r.Value),
- Value = r.Value
- })
- .ToList()
- };
- foreach (var disturbance in model.DisturbanceValueEntities)
- {
- var json = JsonConvert.SerializeObject(disturbance);
- disturbance.Json = json;
- model.DisturbanceEntities.Add(json);
- }
- return model;
- }
- public Core.Domain.Deviation.Deviation ToDeviation()
- {
- return new Core.Domain.Deviation.Deviation
- {
- Id = this.Id,
- CustomNumber = this.CustomNumber,
- Description = Description,
- ReceiptDate = this.ReceiptDate,
- AppendixDate = this.AppendixDate,
- Value = this.Value,
- Percentage = this.Percentage,
- SiteId = this.SiteId,
- AppendixId = this.AppendixId,
- StatusId = this.StatusId,
- KindId = this.KindId,
- Comment = this.Comment
- };
- }
- }
- }
|