예제 #1
0
        static void Generate(ref int inNumberSubscription, DataBaseFcContext context)
        {
            if (context == null)
            {
                return;
            }

            if (context.Accounts.ToList().Count == 0)
            {
                m_next = m_rnd.Next(MinValue, MaxValue);
                inNumberSubscription = m_next;
            }
            else
            {
                //Получим номера абонементов всех клиеннтов
                var query = from numberSubscription in context.Accounts select numberSubscription.Abonement.NumberSubscription;
                //сгенерировали номер абонемента
                m_next = m_rnd.Next(MinValue, MaxValue);
                if (query.ToList().Contains(m_next))
                {
                    Generate(ref inNumberSubscription, context);
                }
                else
                {
                    inNumberSubscription = m_next;
                }
            }
        }
예제 #2
0
 static DbManager()
 {
     if (_dataBaseContext == null)
     {
         _dataBaseContext = new DataBaseFcContext("dbContext");
     }
     if (_manager == null)
     {
         _manager = new DbManager();
     }
 }
        /// <summary>
        /// Звафиксировыать посещение тренировки
        /// </summary>
        /// <param name="account">Учетная запись</param>
        /// <param name="upcomingTraining">Предстоящая тренировка</param>
        public void FixTheVisit(Account account, UpcomingTraining upcomingTraining)
        {
            if (account == null || upcomingTraining == null)
            {
                return;
            }
            //1.Нашли аккаунт
            var currentAbonement = DataBaseFcContext.Abonements.FirstOrDefault(abonem => abonem.AbonementId == account.Abonement.AbonementId);

            //2. Удалили тренировку из записи
            currentAbonement?.ArrUpcomingTrainings.Remove(upcomingTraining);
            DataBaseFcContext.SaveChanges();
        }
        /// <summary>
        /// Добавить новую предстоящую тренировку
        /// </summary>
        public void AddNewUpcomingTraining(Account account, UpcomingTraining newTraining)
        {
            if (account == null || newTraining == null)
            {
                return;
            }

            //1.Нашли аккаунт
            var currentAbonement = DataBaseFcContext.Abonements.FirstOrDefault(abonem => abonem.AbonementId == account.Abonement.AbonementId);

            //2. Добавили новую тренировку
            currentAbonement?.ArrUpcomingTrainings.Add(newTraining);

            DataBaseFcContext.SaveChanges();
        }
        public void GetTrainingWithCurrentGym(Gym gym)
        {
            if (gym == null)
            {
                return;
            }
            var query = DataBaseFcContext.UpcomingTrainings.Where(currGym => currGym.Gym.GymId == gym.GymId).ToList();

            foreach (UpcomingTraining item in query)
            {
                DataBaseFcContext.UpcomingTrainings.Remove(item);
            }

            DataBaseFcContext.SaveChanges();
        }
예제 #6
0
        /// <summary>
        /// Функция генерирует номер абонемента
        /// </summary>

        /// <returns>Уникальный номер абонемента</returns>
        public static int CreateNumberSubscription()
        {
            DataBaseFcContext context = DbManager.GetDbContext();
            int number = 0;

            try
            {
                Generate(ref number, context);
            }
            catch (Exception e)
            {
                //Messenger.Default.Send<Exception>(e);
                Debug.Write("Исключение" + e.Message);
            }
            return(number);
        }
예제 #7
0
 public UnitOfWork(DataBaseFcContext context)
 {
     m_context = context;
     //иницилизация репозиториев
     Accounts               = new AccountRepository(m_context);
     Employess              = new EmployeeRepository(m_context);
     EmployeRoles           = new EmployeeRoleRepository(m_context);
     EmployeesWorkingStatus = new EmployeeWorkingStatusRepository(m_context);
     TrainingList           = new TrainingListRepository(m_context);
     Services               = new ServiceRepository(m_context);
     AccountStatus          = new AccountStatusRepository(m_context);
     ServicesInSubscription = new SiSRepository(m_context);
     Abonements             = new AbonementRepository(m_context);
     UpcomingTrainings      = new UpcomingTrainingRepository(m_context);
     PriceTrainingLists     = new PriceTrainingListRepository(m_context);
     Gyms = new GymRepository(m_context);
 }
        /// <summary>
        /// Создать запись клиента в БД
        /// </summary>
        /// <param name="data">Регистрационные данные клиента</param>
        public void CreateRecord(Account data)
        {
            //проверим еще раз, что такой записи нет
            var clientData = DataBaseFcContext.Accounts.Find(data.HumanId);

            if (clientData == null)
            {
                //создадим статус
                var statuses = DataBaseFcContext.AbonementStatuses.FirstOrDefault(stat => stat.StatusName == "Не активен");
                //создадим абонемент
                data.Abonement = new Abonement()
                {
                    AbonmentStatus = statuses
                };                                                            //создаем абонемент
                data.HumanPhoto = SqlTools.ConvertImageToByteArray(data.StrPathPhoto);
            }
            DataBaseFcContext.Accounts.AddOrUpdate(data);
            DataBaseFcContext.SaveChanges();
        }
        /// <summary>
        /// Найти аккаунт с определенными данными
        /// </summary>
        /// <param name="clientData"> Данные по которым будет производиться выборка</param>
        /// <returns></returns>
        //public NewClientData FindAccountWithSameData(NewClientData clientData)
        //{
        //    //var query = DataBaseFcContext.Accounts.FirstOrDefault(acc => acc.ClientFirstName == clientData.PersonFirstName && acc.ClientLastName ==
        //    //                                                                                                      clientData.PersonLastName
        //    //                                                                                                               && acc.ClientFamilyName ==
        //    //                                                                                                      clientData.PersonFamilyName &&
        //    //                                                                                                      acc.ClientDateOfBirdth ==
        //    //                                                                                                               clientData.PersonDateOfBirdth);

        //var query = DataBaseFcContext.Accounts.FirstOrDefault(acc => ((acc.HumanFirstName == clientData.PersonFirstName)
        //                                                                  &&
        //                                                                 (acc.HumanLastName == clientData.PersonLastName)
        //                                                                  &&
        //                                                                  (acc.HumanFamilyName == clientData.PersonFamilyName)
        //                                                                  &&
        //                                                                  (acc.HumanPasportDataSeries == clientData.ClientPasportDataSeries)
        //                                                                  &&
        //                                                                  (acc.HumanPasportDataNumber == clientData.ClientPasportDataNumber)
        //                                                                  ));


        //    return query != null
        //        ? new NewClientData(true)
        //        {
        //            PersonRole = "Клиент",
        //            PersonFirstName = query.HumanFirstName,
        //            PersonLastName =  query.HumanLastName,
        //            PersonFamilyName = query.HumanFamilyName,
        //            PersonDateOfBirdth = query.HumanDateOfBirdth,
        //            PersonGender = query.HumanGender,
        //            PersonId = query.HumanId,
        //            PersonAdress = query.HumanAdress,
        //            PersonPhoneNumber = query.HumanPhoneNumber,
        //            PersonMail = query.HumanMail,
        //            PersonPhoto =query.HumanPhoto,
        //            ClientPasportDataSeries = query.HumanPasportDataSeries,
        //            ClientPasportDataNumber = query.HumanPasportDataNumber,
        //            ClientPasportDataIssuedBy = query.HumanPasportDataIssuedBy,
        //            ClientPasportDatеOfIssue = query.HumanPasportDatеOfIssue,
        //            NumberSubscription = query.Abonement.NumberSubscription

        //        } : null;
        //}

        public void UpdateFields(Account clientData)
        {
            Account _clientData = null;

            if (clientData.HumanId == 0)
            {
                _clientData = DataBaseFcContext.Accounts.Find(clientData.HumanId);
                if (_clientData == null)
                {
                    return;
                }
            }
            else
            {
                _clientData = clientData;
            }



            SqlTools.UpdatePhoto(ref _clientData, clientData.StrPathPhoto);
            DataBaseFcContext.Accounts.AddOrUpdate(_clientData);
            DataBaseFcContext.SaveChanges();
        }
예제 #10
0
        public UnitOfWork(IServiceProvider serviceProvider)
        {
            //получаем контекст БД
            m_context = (DataBaseFcContext)serviceProvider.GetService(typeof(DataBaseFcContext));

            //инциализация репозиториев
            Clients           = serviceProvider.GetRequiredService <IClientRepository>();
            AbonementStatuses = serviceProvider.GetRequiredService <IAbonementStatusRepository>();
            AbonementTypes    = serviceProvider.GetRequiredService <IAbonementTypeRepository>();
            TrainingClients   = serviceProvider.GetRequiredService <ITrainingClientRepository>();
            TrainingDatas     = serviceProvider.GetRequiredService <ITrainingDataRepository>();
            Trainings         = serviceProvider.GetRequiredService <ITrainingRepository>();
            Gyms                   = serviceProvider.GetRequiredService <IGymRepository>();
            CoachesTrainings       = serviceProvider.GetRequiredService <ICoachTrainingRepository>();
            Employees              = serviceProvider.GetRequiredService <IEmployeeRepository>();
            Roles                  = serviceProvider.GetRequiredService <IRoleRepository>();
            ReplacedTrainings      = serviceProvider.GetRequiredService <IReplacedTrainingRepository>();
            TrainingLevels         = serviceProvider.GetRequiredService <ITrainingLevelRepository>();
            ProgramTypes           = serviceProvider.GetRequiredService <IProgramTypeRepository>();
            VisitedTrainingClients = serviceProvider.GetRequiredService <IVisitedTrainingClientRepository>();
            FcmInfos               = serviceProvider.GetRequiredService <IFcmInfoRepository>();
            ClientsFcmInfos        = serviceProvider.GetRequiredService <IClientsFcmInfoRepository>();
            //
        }
 public AbonementTypeRepository(DataBaseFcContext context) : base(context)
 {
 }
예제 #12
0
 public ServiceRepository(DataBaseFcContext context) : base(context)
 {
 }
예제 #13
0
 public FcmInfoRepository(DataBaseFcContext context) : base(context)
 {
 }
예제 #14
0
 public void AppentRecordToExistAccount(Account acc)
 {
     DataBaseFcContext.Accounts.AddOrUpdate(acc);
     DataBaseFcContext.SaveChanges();
 }
 public ClientRepository(DataBaseFcContext context) : base(context)
 {
 }
 public ReplacedTrainingRepository(DataBaseFcContext context) : base(context)
 {
 }
예제 #17
0
 public RoleRepository(DataBaseFcContext context) : base(context)
 {
 }
예제 #18
0
 public CoachTrainingRepository(DataBaseFcContext context) : base(context)
 {
 }
 public AccountStatusRepository(DataBaseFcContext context) : base(context)
 {
 }
예제 #20
0
 public EmployeeWorkingStatusRepository(DataBaseFcContext context) : base(context)
 {
 }
예제 #21
0
 public GymRepository(DataBaseFcContext context) : base(context)
 {
 }
 public TrainingListRepository(DataBaseFcContext context) : base(context)
 {
 }
예제 #23
0
 public VisitedTrainingClientRepository(DataBaseFcContext context) : base(context)
 {
 }
 public AbonementStatusRepository(DataBaseFcContext context) : base(context)
 {
     //TODO: Разместите объявления методов для работы со статусами абонемента
 }
예제 #25
0
 public EmployeeRoleRepository(DataBaseFcContext context) : base(context)
 {
 }
예제 #26
0
 public ProgramTypeRepository(DataBaseFcContext context) : base(context)
 {
 }