Пример #1
0
        public IEnumerable <long> Enroll(string unit, long telegramId,
                                         IEnumerable <EnrollmentModel> entries)
        {
            List <long> newIds = new List <long>();

            using (var con = _connectionFactory.CreateConnection())
            {
                con.Open();
                var transaction = con.BeginTransaction();
                try
                {
                    foreach (var entry in entries)
                    {
                        long id = con.Insert <EnrollmentModel>(entry);
                        newIds.Add(id);
                        int priority = 1;
                        foreach (var vaxPref in entry.VaccinesPreference)
                        {
                            VaccinePreferenceModel vaxPrefModel = new VaccinePreferenceModel();
                            vaxPrefModel.EnrollmentId = id;
                            vaxPrefModel.VaxId        = vaxPref;
                            vaxPrefModel.Priority     = priority++;
                            con.Insert(vaxPrefModel);
                        }
                    }
                    transaction.Commit();
                }
                catch
                {
                    transaction.Rollback();
                    throw;
                }
            }
            return(newIds);
        }
Пример #2
0
 internal bool UpdateEnrollment(string unit, long telegramId, EnrollmentModel model)
 {
     using (var con = _connectionFactory.CreateConnection())
     {
         con.Open();
         var transaction = con.BeginTransaction();
         try
         {
             bool result = con.Update(model, transaction);
             con.Query("DELETE FROM Vax_Pref WHERE EnrollmentId=@enrollmentId", new
             {
                 enrollmentId = model.Id
             }, transaction);
             int priority = 1;
             foreach (var vaxPref in model.VaccinesPreference)
             {
                 VaccinePreferenceModel vaxPrefModel = new VaccinePreferenceModel();
                 vaxPrefModel.EnrollmentId = model.Id;
                 vaxPrefModel.VaxId        = vaxPref;
                 vaxPrefModel.Priority     = priority++;
                 con.Insert(vaxPrefModel, transaction);
             }
             transaction.Commit();
             return(result);
         }
         catch
         {
             transaction.Rollback();
             throw;
         }
     }
 }