コード例 #1
0
 public static void DeleteTrainingSchedule(int id)
 {
     using (var ctx = new DFAppEntities())
     {
         var existing = ctx.TrainingSchedules.FirstOrDefault(x => x.ID == id);
         if (existing != null)
         {
             ctx.TrainingSchedules.Remove(existing);
             ctx.SaveChanges();
         }
         else
         {
             throw new Exception("error_training_schedule_not_exist");
         }
     }
 }
コード例 #2
0
 public static List <UserGroupModel> GetUserGroups(int id)
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.UserGroupMembers.Include("UserGroups").Where(ugm => ugm.UserID == id)
                .Select(ugm =>
                        new UserGroupModel()
         {
             UserGroupID = ugm.UserGroupID,
             UserGroupName = ugm.UserGroups.UserGroupName
         }
                        )
                .OrderBy(ug => ug.UserGroupName)
                .ToList());
     }
 }
コード例 #3
0
 public static List <PermissionModel> GetPermissions(int userID)
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.UserPermissions.Include("Permissions").Where(udt => udt.UserID == userID)
                .Select(up =>
                        new PermissionModel()
         {
             PermissionID = up.PermissionID,
             PermissionName = up.Permissions.PermissionName
         }
                        )
                .OrderBy(p => p.PermissionName)
                .ToList());
     }
 }
コード例 #4
0
 public static List <LookupModel> GetLookup()
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.DanceSelections
                .Select(x =>
                        new LookupModel()
         {
             ID = x.DanceSelectionID,
             Name = x.DanceSelectionName
         }
                        )
                .OrderBy(lkp => lkp.Name)
                .ToList());
     }
 }
コード例 #5
0
 public static List <UserGroupModel> GetUserGroups()
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.UserGroups
                .Select(u =>
                        new UserGroupModel()
         {
             UserGroupID = u.UserGroupID,
             UserGroupName = u.UserGroupName
         }
                        )
                .OrderBy(u => u.UserGroupName)
                .ToList());
     }
 }
コード例 #6
0
 public static List <PermissionModel> GetPermissions()
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.Permissions
                .Select(u =>
                        new PermissionModel()
         {
             PermissionID = u.PermissionID,
             PermissionName = u.PermissionName
         }
                        )
                .OrderBy(u => u.PermissionName)
                .ToList());
     }
 }
コード例 #7
0
 public static void SetActive(TrainingScheduleModel model)
 {
     using (var ctx = new DFAppEntities())
     {
         var existing = ctx.TrainingSchedules.FirstOrDefault(x => x.ID == model.ID);
         if (existing != null)
         {
             existing.Active = model.Active;
             ctx.SaveChanges();
         }
         else
         {
             throw new Exception("error_training_schedule_not_exist");
         }
     }
 }
コード例 #8
0
        public static void EditPayment(PaymentModel model)
        {
            using (var ctx = new DFAppEntities())
            {
                var existing = ctx.Payments.FirstOrDefault(x => x.ID == model.ID);
                if (existing != null)
                {
                    if (model.Active.HasValue)
                    {
                        existing.Active = model.Active.Value;
                    }

                    ctx.SaveChanges();
                }
            }
        }
コード例 #9
0
 public static List <DanceGroupModel> GetUserDanceGroups(int id)
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.UserDanceGroups.Include("DanceGroups").Where(udg => udg.UserID == id)
                .Select(udg =>
                        new DanceGroupModel()
         {
             DanceGroupID = udg.DanceGroupID,
             DanceGroupName = udg.DanceGroups.DanceGroupName,
             HasPaymentAbility = udg.HasPaymentAbility
         }
                        )
                .OrderBy(udg => udg.DanceGroupName)
                .ToList());
     }
 }
コード例 #10
0
 public static List <UserGroupModel> GetUserGroupsByUser(int userID)
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.UserGroupMembers.Include("UserGroups")
                .Where(u => u.UserID == userID)
                .Select(u =>
                        new UserGroupModel()
         {
             UserGroupID = u.UserGroupID,
             UserGroupName = u.UserGroups.UserGroupName
         }
                        )
                .OrderBy(x => x.UserGroupName)
                .ToList());
     }
 }
コード例 #11
0
 public static List <LookupModel> GetUsers()
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.Users
                .Where(u => u.IsActive)
                .Select(x =>
                        new LookupModel()
         {
             ID = x.UserID,
             Name = x.FirstName + " " + x.LastName
         }
                        )
                .OrderBy(ac => ac.Name)
                .ToList());
     }
 }
コード例 #12
0
 public static List <DanceGroupModel> GetAllDanceGroups()
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.DanceGroups
                .Include(t => t.Lookup_AgeCategories)
                .Select(x =>
                        new DanceGroupModel()
         {
             DanceGroupID = x.DanceGroupID,
             DanceGroupName = x.DanceGroupName
         }
                        )
                .OrderBy(lkp => lkp.DanceGroupName)
                .ToList());
     }
 }
コード例 #13
0
        private static void AddUserPermission(int userID, int curentUserPermissionID)
        {
            using (var ctx = new DFAppEntities())
            {
                var user       = ctx.Users.Where(u => u.UserID == userID).FirstOrDefault();
                var permission = ctx.Permissions.Where(ug => ug.PermissionID == curentUserPermissionID).FirstOrDefault();

                if (user != null && permission != null)
                {
                    UserPermissions up = new UserPermissions();
                    up.PermissionID = curentUserPermissionID;
                    up.UserID       = userID;

                    user.UserPermissions.Add(up);
                    ctx.SaveChanges();
                }
            }
        }
コード例 #14
0
 public static List <LookupModel> GetLocations()
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.Locations
                .Select(x =>
                        new LookupModel()
         {
             ID = x.LocationID,
             Name = x.LocationName,
             Desc = x.LocationDesc,
             Metadata = x.LocationAddress
         }
                        )
                .OrderBy(ac => ac.Name)
                .ToList());
     }
 }
コード例 #15
0
        private static void EditUserGroup(UserGroupModel model)
        {
            using (var ctx = new DFAppEntities())
            {
                var userGroup = ctx.UserGroups.FirstOrDefault(ug => ug.UserGroupID == model.UserGroupID);
                if (userGroup != null)
                {
                    var existing = ctx.UserGroups.FirstOrDefault(x => x.UserGroupName.ToLower() == model.UserGroupName.ToLower());
                    if (existing != null)
                    {
                        throw new Exception("error_user_groups_name_exists");
                    }

                    userGroup.UserGroupName = model.UserGroupName;
                    ctx.SaveChanges();
                }
            }
        }
コード例 #16
0
 public static DanceGroupModel GetDanceGroup(int id)
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.DanceGroups.Include(t => t.Lookup_AgeCategories).Where(dg => dg.DanceGroupID == id)
                .Select(x =>
                        new DanceGroupModel()
         {
             DanceGroupID = x.DanceGroupID,
             DanceGroupName = x.DanceGroupName,
             DanceGroupDesc = x.DanceGroupDesc,
             AgeCategoryID = x.AgeCategoryID,
             AgeCategory = (x.Lookup_AgeCategories != null) ? x.Lookup_AgeCategories.Name : string.Empty
         }
                        )
                .FirstOrDefault());
     }
 }
コード例 #17
0
 public static List <LookupModel> GetTrainers()
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.Users
                .Include("UserGroupMembers.UserGroups")
                .Where(u => u.IsActive && u.UserGroupMembers.Any(member => member.UserGroups.UserGroupName.ToUpper() == "TRENER"))
                .Select(x =>
                        new LookupModel()
         {
             ID = x.UserID,
             Name = x.FirstName + " " + x.LastName
         }
                        )
                .OrderBy(ac => ac.Name)
                .ToList());
     }
 }
コード例 #18
0
        public static void DeleteMemberPayment(int memberID, int paymentID)
        {
            using (var ctx = new DFAppEntities())
            {
                var memberPayment =
                    ctx.MemberPayments
                    .FirstOrDefault(mp => mp.MemberID == memberID && mp.PaymentID == paymentID);

                if (memberPayment != null)
                {
                    // can be deleted only if all installments are canceled
                    var installments = ctx.MemberPaymentInstallments.Where(mpi => mpi.MemberID == memberID && mpi.PaymentID == paymentID).ToList();
                    if (installments != null && installments.Count() > 0)
                    {
                        for (int i = installments.Count() - 1; i >= 0; i--)
                        {
                            var installment = installments.ElementAt(i);
                            if (!installment.IsCanceled)
                            {
                                throw new Exception("error_member_payments_delete_installment_not_canceled");
                            }

                            ctx.MemberPaymentInstallments.Remove(installment);
                        }
                    }

                    // delete member payment companions
                    var companions = ctx.MemberPaymentsForCompanions.Where(mpc => mpc.MemberID == memberID && mpc.PaymentID == paymentID).ToList();
                    if (companions != null && companions.Count() > 0)
                    {
                        for (int j = companions.Count() - 1; j >= 0; j--)
                        {
                            var companion = companions.ElementAt(j);
                            ctx.MemberPaymentsForCompanions.Remove(companion);
                        }
                    }

                    // delete member payment
                    ctx.MemberPayments.Remove(memberPayment);

                    ctx.SaveChanges();
                }
            }
        }
コード例 #19
0
        public static void DeleteTraining(int id)
        {
            using (var ctx = new DFAppEntities())
            {
                DBModel.Trainings t = ctx.Trainings.FirstOrDefault(x => x.TrainingID == id);
                if (t != null)
                {
                    ctx.Entry(t).Collection(x => x.TrainingMemberPresenceRegistrations).Load();

                    for (int i = t.TrainingMemberPresenceRegistrations.Count() - 1; i >= 0; i--)
                    {
                        ctx.TrainingMemberPresenceRegistrations.Remove(t.TrainingMemberPresenceRegistrations.ElementAt(i));
                    }

                    ctx.Trainings.Remove(t);
                    ctx.SaveChanges();
                }
            }
        }
コード例 #20
0
        public static void ClonePayment(PaymentModel model)
        {
            using (var ctx = new DFAppEntities())
            {
                var existing = ctx.Payments.AsNoTracking().FirstOrDefault(x => x.ID == model.ID);
                if (existing != null)
                {
                    existing.Name = model.Name;

                    // check for the same name
                    var sameName = ctx.Payments.AsNoTracking().FirstOrDefault(x => x.Name.ToLower() == model.Name.ToLower());
                    if (sameName != null)
                    {
                        throw new Exception("error_payments_clone_payment_existing_name");
                    }

                    existing.Active = true;

                    if (model.Amount.HasValue)
                    {
                        existing.Amount = model.Amount.Value;
                    }

                    if (model.DueDate.HasValue)
                    {
                        existing.DueDate = model.DueDate.Value;
                    }

                    if (model.NumberOfInstallments.HasValue)
                    {
                        existing.NumberOfInstallments = model.NumberOfInstallments.Value;
                    }

                    if (!string.IsNullOrEmpty(model.InstallmentAmounts))
                    {
                        existing.InstallmentAmounts = model.InstallmentAmounts;
                    }

                    ctx.Payments.Add(existing);
                    ctx.SaveChanges();
                }
            }
        }
コード例 #21
0
        public static MemberModel GetMember(int id)
        {
            MemberModel model = null;

            using (var ctx = new DFAppEntities())
            {
                var existing = ctx.Members
                               .Include(t => t.ContactData)
                               .Include(t => t.Lookup_AgeCategories)
                               .FirstOrDefault(x => x.MemberID == id);

                if (existing != null)
                {
                    model               = new MemberModel();
                    model.MemberID      = existing.MemberID;
                    model.FirstName     = existing.FirstName;
                    model.LastName      = existing.LastName;
                    model.FullName      = existing.FirstName + " " + existing.LastName;
                    model.IsActive      = existing.IsActive;
                    model.IsCompetitor  = existing.IsCompetitor;
                    model.JMBG          = existing.JMBG;
                    model.BirthDate     = existing.BirthDate;
                    model.BirthPlace    = existing.BirthPlace;
                    model.AgeCategoryID = existing.AgeCategoryID;
                    model.AgeCategory   = (existing.Lookup_AgeCategories != null) ? existing.Lookup_AgeCategories.Name : string.Empty;
                    model.ProfileImage  = existing.ProfileImage;
                    model.Note          = existing.Note;

                    model.ContactData =
                        new ContactDataModel()
                    {
                        Address = existing.ContactData.Address,
                        Email   = existing.ContactData.Email,
                        Phone1  = existing.ContactData.Phone1,
                        Phone2  = existing.ContactData.Phone2,
                        Phone3  = existing.ContactData.Phone3
                    };
                }
            }

            return(model);
        }
コード例 #22
0
        private static int AddUserGroup(UserGroupModel model)
        {
            using (var ctx = new DFAppEntities())
            {
                var existing = ctx.UserGroups.FirstOrDefault(x => x.UserGroupName.ToLower() == model.UserGroupName.ToLower());
                if (existing != null)
                {
                    throw new Exception("error_user_groups_name_exists");
                }

                DBModel.UserGroups ug = new DBModel.UserGroups();
                ug.UserGroupID   = model.UserGroupID;
                ug.UserGroupName = model.UserGroupName;

                ctx.UserGroups.Add(ug);
                ctx.SaveChanges();

                return(ug.UserGroupID);
            }
        }
コード例 #23
0
        public static void UpdateTrainingMemberPresenceRegistration(TrainingMemberPresenceRegistrationModel model)
        {
            using (var ctx = new DFAppEntities())
            {
                var reg = ctx.TrainingMemberPresenceRegistrations.Include(t => t.Members).FirstOrDefault(r => r.TrainingID == model.TrainingID && r.MemberID == model.MemberID);
                if (reg != null)
                {
                    if (model.IsPresent.HasValue)
                    {
                        reg.IsPresent = model.IsPresent.Value;

                        if (reg.IsPresent)
                        {
                            reg.AbsenceJustified = true;
                        }
                    }

                    if (model.IsOnline.HasValue)
                    {
                        reg.IsOnline = model.IsOnline.Value;
                    }

                    if (!reg.IsPresent && model.AbsenceJustified.HasValue)
                    {
                        reg.AbsenceJustified = model.AbsenceJustified.Value;
                    }

                    if (!reg.IsPresent && !string.IsNullOrEmpty(model.AbsenceNote))
                    {
                        reg.AbsenceNote = model.AbsenceNote;
                    }

                    if (!reg.IsPresent && model.ForceDeleteAbsenceNote.HasValue && model.ForceDeleteAbsenceNote.Value)
                    {
                        reg.AbsenceNote = null;
                    }

                    ctx.SaveChanges();
                }
            }
        }
コード例 #24
0
        public static UserModel AuthenticateUser(string username, string password)
        {
            UserModel model = null;

            using (var ctx = new DFAppEntities())
            {
                byte[] data = Encoding.UTF8.GetBytes(password);
                data = new SHA256Managed().ComputeHash(data);
                string hashPassword = Encoding.UTF8.GetString(data);

                var u = ctx.Users.Include("UserGroupMembers.UserGroups").FirstOrDefault(user => user.Username.ToLower() == username.ToLower() && (user.Password == hashPassword || user.Password == password));

                if (u != null)
                {
                    if (!u.IsActive)
                    {
                        throw new Exception("errors_login_user_not_active");
                    }

                    model           = new UserModel();
                    model.UserID    = u.UserID;
                    model.Username  = u.Username;
                    model.FirstName = u.FirstName;
                    model.LastName  = u.LastName;
                    model.FullName  = string.Format("{0} {1}", u.FirstName, u.LastName);

                    model.UserGroups =
                        u.UserGroupMembers.Select(ugm =>
                                                  new UserGroupModel()
                    {
                        UserGroupID   = ugm.UserGroupID,
                        UserGroupName = ugm.UserGroups.UserGroupName
                    }
                                                  )
                        .OrderBy(ug => ug.UserGroupName)
                        .ToList();
                }
            }

            return(model);
        }
コード例 #25
0
        public static void InsertDocument(int id, DocumentModel docModel)
        {
            using (var ctx = new DFAppEntities())
            {
                var memberDocs = ctx.MemberDocuments.Include(t => t.Documents).Where(mdoc => mdoc.MemberID == id);
                if (memberDocs != null)
                {
                    var existing = memberDocs.FirstOrDefault(d => d.Documents.DocumentName.ToLower() == docModel.DocumentName.ToLower());
                    if (existing != null)
                    {
                        throw new Exception("error_member_documents_doc_name_exists");
                    }
                }

                DBModel.Documents doc = new DBModel.Documents();
                doc.DocumentName          = docModel.DocumentName;
                doc.DocumentDesc          = docModel.DocumentDesc;
                doc.DocumentCodedName     = docModel.DocumentCodedName;
                doc.DocumentFileName      = docModel.DocumentFileName;
                doc.DocumentFileExtension = docModel.DocumentFileExtension;
                doc.DocumentTypeID        = docModel.DocumentTypeID;
                doc.CreationDate          = docModel.CreationDate;
                doc.CreatedByUserID       = docModel.CreatedByUserID;
                doc.DocumentPath          = docModel.DocumentPath;

                if (docModel.Metadata != null && docModel.Metadata.ExpiryDate.HasValue)
                {
                    doc.DocumentMetadata            = new DocumentMetadata();
                    doc.DocumentMetadata.ExpiryDate = docModel.Metadata.ExpiryDate;
                }

                ctx.Documents.Add(doc);

                DBModel.MemberDocuments md = new MemberDocuments();
                md.DocumentID = doc.DocumentID;
                md.MemberID   = id;
                ctx.MemberDocuments.Add(md);

                ctx.SaveChanges();
            }
        }
コード例 #26
0
        public static void EditMemberPaymentInstallment(int id, InstallmentModel model)
        {
            using (var ctx = new DFAppEntities())
            {
                var installment = ctx.MemberPaymentInstallments.FirstOrDefault(x => x.ID == id);
                if (installment != null)
                {
                    if (model.IsPaid.HasValue)
                    {
                        installment.IsPaid = (bool)model.IsPaid;

                        if (installment.IsPaid && !model.PaymentDate.HasValue)
                        {
                            installment.PaymentDate = DateTime.Now;
                        }

                        if (!installment.IsPaid)
                        {
                            installment.PaymentDate = null;
                        }
                    }

                    if (model.PaymentDate.HasValue && installment.IsPaid)
                    {
                        installment.PaymentDate = model.PaymentDate;
                    }

                    if (model.IsCanceled.HasValue)
                    {
                        installment.IsCanceled = (bool)model.IsCanceled;
                    }

                    if (!string.IsNullOrEmpty(model.Note))
                    {
                        installment.Note = model.Note;
                    }

                    ctx.SaveChanges();
                }
            }
        }
コード例 #27
0
        public static UserModel GetIndividualUser(int id)
        {
            using (var ctx = new DFAppEntities())
            {
                UserModel model = null;

                var user = ctx.Users.FirstOrDefault(u => u.UserID == id);
                if (user != null)
                {
                    model           = new UserModel();
                    model.UserID    = user.UserID;
                    model.Username  = user.Username;
                    model.FirstName = user.FirstName;
                    model.LastName  = user.LastName;
                    model.FullName  = user.FirstName + " " + user.LastName;
                    model.IsActive  = user.IsActive;
                }

                return(model);
            }
        }
コード例 #28
0
        public static DocumentModel GetIndividualDocument(int id)
        {
            using (var ctx = new DFAppEntities())
            {
                var doc = ctx.Documents.FirstOrDefault(d => d.DocumentID == id);
                if (doc != null)
                {
                    return(new DocumentModel()
                    {
                        CreatedByUserID = doc.CreatedByUserID,
                        CreationDate = doc.CreationDate,
                        DocumentCodedName = doc.DocumentCodedName,
                        DocumentFileName = doc.DocumentFileName,
                        DocumentFileExtension = doc.DocumentFileExtension,
                        DocumentPath = doc.DocumentPath
                    });
                }

                return(null);
            }
        }
コード例 #29
0
        public static void DeleteDocument(int id)
        {
            using (var ctx = new DFAppEntities())
            {
                var memberDocs = ctx.MemberDocuments
                                 .Include(t => t.Documents.DocumentMetadata)
                                 .Where(x => x.DocumentID == id)
                                 .ToList();

                for (int i = memberDocs.Count() - 1; i >= 0; i--)
                {
                    var memberDoc = memberDocs.ElementAt(i);
                    var doc       = memberDoc.Documents;

                    ctx.MemberDocuments.Remove(memberDoc);
                    ctx.Documents.Remove(doc);
                }

                ctx.SaveChanges();
            }
        }
コード例 #30
0
 public static List <DanceGroupModel> GetDanceGroups(int id)
 {
     using (var ctx = new DFAppEntities())
     {
         return(ctx.DanceGroupMembers
                .Include("DanceGroups.Lookup_AgeCategories")
                .Where(md => md.MemberID == id)
                .Select(x =>
                        new DanceGroupModel()
         {
             DanceGroupID = x.DanceGroupID,
             DanceGroupName = x.DanceGroups.DanceGroupName,
             DanceGroupDesc = x.DanceGroups.DanceGroupDesc,
             AgeCategoryID = x.DanceGroups.AgeCategoryID,
             AgeCategory = x.DanceGroups.Lookup_AgeCategories.Name
         }
                        )
                .OrderByDescending(d => d.DanceGroupName)
                .ToList());
     }
 }