public static void SaveAbonementToHistory(Person person, AbonementBasic abon) { if (abon == null) { return; } var currentAdmin = (DataBaseLevel.GetManhattanInfo()?.CurrentAdmin) ?? new Administrator(); var lengAbonOrClCa = string.Empty; if (abon is AbonementByDays byDays) { lengAbonOrClCa = byDays.GetTypeAbonementByDays().ToString().Replace("На_", "").Replace("_", " "); } else if (abon is ClubCardA clubCardA) { lengAbonOrClCa = clubCardA.PeriodAbonem.ToString().Replace("На_", ""); } else if (abon is SingleVisit singleVisit) { lengAbonOrClCa = ""; } var abonHistory = new AbonHistory() { AbonementName = abon.AbonementName, AdminName = currentAdmin.Name, TypeWorkout = abon.TypeWorkout.ToString(), Time = abon.TimeTraining.ToString(), SpaStatus = abon.Spa.ToString(), EndDate = abon.EndDate.ToShortDateString(), ActivationDate = abon.BuyActivationDate.ToShortDateString(), LengthAbonOrClubCard = lengAbonOrClCa, NumAerobn = (abon is AbonementByDays days && days.TypeWorkout == TypeWorkout.Аэробный_Зал) ? days.GetRemainderDays().ToString() : abon.NumAerobicTr.ToString(), NumMini = (abon is AbonementByDays daysM && daysM.TypeWorkout == TypeWorkout.МиниГруппа) ? daysM.GetRemainderDays().ToString() : abon.NumMiniGroup.ToString(), NumPerson = (abon is AbonementByDays daysP && daysP.TypeWorkout == TypeWorkout.Персональная) ? daysP.GetRemainderDays().ToString() : abon.NumPersonalTr.ToString(), BuyDate = abon.BuyDate.ToShortDateString() }; // Список всех абонементов для всех клиентов var personsAbonHistDict = DataBaseLevel.GetPersonsAbonHistDict(); if (personsAbonHistDict.ContainsKey(person.Name)) { personsAbonHistDict[person.Name].Add(abonHistory); } else { personsAbonHistDict.Add(person.Name, new List <AbonHistory> { abonHistory }); } } #endregion }
/// <summary> /// Возвращает коллекцию с старыми абонементами клиента. Если их нет - вернет нулл. /// </summary> /// <param name="name"></param> /// <returns></returns> public static List <AbonHistory> GetAbonHistoryList(string name) { var dictHistory = DataBaseLevel.GetPersonsAbonHistDict(); return(!dictHistory.ContainsKey(name) ? null : dictHistory[name]); }