| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | using System;
using System.Collections.Generic;
using System.Linq;
using UnivateProperties_API.Helpers;
using UnivateProperties_API.Model.Timeshare;
namespace UnivateProperties_API.Containers.Timeshare
{
    public class WeekDto
    {
        public WeekDto()
        {
        }
        public WeekDto(string line)
        {
            List<string> split = line.Split(",").ToList();
            AgentAsRep = false;
            Resort = new ResortDto(split[0].Trim(), split[0].Trim());
            UnitNumber = split[1].Trim();
            WeekNumber = split[2].Trim();
            var size = split[3].Trim();
            if(size.Length == 3 && !size.ToLower().StartsWith('s'))
            {
                int.TryParse(size.Substring(0, 1), out int temp);
                Bedrooms = temp;
                int.TryParse(size.Substring(2, 1), out temp);
                MaxSleep = temp;
            }
            bool currentYear = split[9].Trim() == "Y";
            LevyAmount = Convert.ToDouble(split[5].Trim());
            DateTime tempDate = MyCommon.GetDateFromString(currentYear ? split[6].Trim() : split[13].Trim());
            if(tempDate != DateTime.MinValue)
            {
                ArrivalDate = tempDate;
            }
            tempDate = MyCommon.GetDateFromString(currentYear ? split[7].Trim() : split[14].Trim());
            if(tempDate != DateTime.MinValue)
            {
                DepartureDate = tempDate;
            }
            Region = new RegionDto() { RegionCode = split[24] };
        }
        public WeekDto(TimeshareWeek week)
        {
            Id = week.Id;
            AgentAsRep = week.AgentAsRep;
            OtherResort = week.OtherResort;
            Agency = week.Agency?.AgencyName;
            Agent = $"{week.Agent?.Name} {week.Agent?.Surname}";
            Owner = $"{week.Owner?.Name} {week.Owner?.Surname}";
            Resort = new ResortDto(week.ResortCode, week.ResortName);
            Region = new RegionDto(week.Region != null ? week.Region.Id : 0, week.Region?.Description, week.Region?.Code);
            Status = new StatusDto(week.Status.Id, week.Status?.Code, week.Status?.Description);
            Bedrooms = week.Bedrooms;
            MaxSleep = week.MaxSleep;
            UnitNumber = week.UnitNumber;
            WeekNumber = week.WeekNumber;
            LevyAmount = week.LevyAmount;
            CurrentYearBanked = week.CurrentYearBanked;
            ArrivalDate = week.ArrivalDate;
            DepartureDate = week.DepartureDate;
            SellPrice = week.SellPrice;
        }
        public int Id { get; set; }
        public bool AgentAsRep { get; set; }
        public bool OtherResort { get; set; }
        public string Agency { get; set; }
        public string Agent { get; set; }
        public string Owner { get; set; }
        public ResortDto Resort { get; set; }
        public RegionDto Region { get; set; }
        public StatusDto Status { get; set; }
        public int Bedrooms { get; set; }
        public int MaxSleep { get; set; }
        public string UnitNumber { get; set; }
        public string WeekNumber { get; set; }
        public double LevyAmount { get; set; }
        public bool CurrentYearBanked { get; set; }
        public string BankedWith { get; set; }
        public DateTime ArrivalDate { get; set; }
        public DateTime DepartureDate { get; set; }
        public double SellPrice { get; set; }
    }
}
 |