public ActionResult ApplyModal(ApplyModalDataModel model) { using (ApplyMaintainModule module = new ApplyMaintainModule()) { var details = module.SaveApply(model); if (details == null) { TempData["ErrorMsg"] = "查無該活動賽事"; } } return(RedirectToAction("ApplyEdit", new { ID = model.ActivityID })); }
public ApplyModalDataModel GetApplyData(int actID, int applyID) { ApplyModalDataModel model = DB.OLACT .Join(DB.APPLY, act => act.ID, apply => apply.MAP_ACT_ID, (act, apply) => new { act, apply }) .Where(o => o.act.ID == actID && o.apply.ID == applyID) .AsEnumerable() .Select(s => new ApplyModalDataModel() { ActivityID = s.act.ID, ApplyID = s.apply.ID, ActivityTitle = s.act.ACTITLE, ApplyGroupID = s.apply.MAP_ACT_GUP_ID, ApplyNumber = s.apply.APPLY_IDEN_NUM, ApplyStatus = s.apply.APPLY_SUCCESS, Coach = s.apply.TEAM_COACH, Contact = s.apply.CONTACT, ContactPhone = s.apply.CONTACT_PHONE, Email = s.apply.EMAIL, Remark = s.apply.REMRK.ReplaceEmpty(), TeamName = s.apply.TEAM_NM, Member = GetMemberInfoByApplyID(s.act.ID, s.apply.ID) }) .FirstOrDefault(); if (model != null) { var group = DB.OLACTGROUP .Where(o => o.MAP_ACT_ID == model.ActivityID) .Select(s => new OutWeb.Models.FrontEnd.ApplyModels.ApplyViewGroup() { GroupID = s.ID, GroupName = s.GROUP_NAME, GroupApplyLimit = s.TEAM_APPLY_LIMIT, CountApplyLimit = s.COUNT_APPLY_LIMIT }) .ToList(); foreach (var g in group) { var applyGorupLimitCount = DB.APPLY.Where(o => o.MAP_ACT_ID == model.ActivityID && o.MAP_ACT_GUP_ID == g.GroupID).Count(); g.CountApplyLastLimit = (g.GroupApplyLimit - applyGorupLimitCount) <= 0 ? 0 : (g.GroupApplyLimit - applyGorupLimitCount); model.ActivityGroup.Add(g); } model.ApplyGroupJsonString = JsonConvert.SerializeObject(model.ActivityGroup); } return(model); }
public ActionResult ApplyModal(int actID, int applyID) { ApplyModalDataModel model = new ApplyModalDataModel(); using (var applyModule = new ApplyFrontModule()) { using (ApplyMaintainModule module = new ApplyMaintainModule()) { model = module.GetApplyData((int)actID, (int)applyID); if (model == null) { TempData["ErrorMsg"] = "查無該活動賽事"; } else { TempData["ErrorMsg"] = ""; } } } return(PartialView("_ApplyModalPartial", model)); }
public ApplyModalDataModel SaveApply(ApplyModalDataModel model) { ApplyModalDataModel result = new ApplyModalDataModel(); using (var transction = DB.Database.CurrentTransaction ?? DB.Database.BeginTransaction()) { var apply = DB.APPLY.Where(o => o.MAP_ACT_ID == model.ActivityID && o.ID == model.ApplyID).FirstOrDefault(); if (apply == null) { throw new Exception("無法取得該報名檔,是否已刪除?"); } apply.MAP_ACT_GUP_ID = model.ApplyGroupID; apply.TEAM_COACH = model.Coach; apply.CONTACT = model.Contact; apply.CONTACT_PHONE = model.ContactPhone; apply.EMAIL = model.Email; apply.REMRK = model.Remark.ReplaceEmpty(); apply.TEAM_NM = model.TeamName; apply.MAP_ACT_ID = model.ActivityID; apply.APPLY_SUCCESS = model.ApplyStatus; apply.UPD_DT = DateTime.UtcNow.AddHours(8); try { this.DB.Entry(apply).State = EntityState.Modified; DB.SaveChanges(); transction.Commit(); } catch (Exception ex) { transction.Rollback(); throw ex; } } IQueryable <APPLY_MEMBER> deleteMember; if (model.Member.Count > 0) { List <int> memberIds = model.Member.Where(o => o.ID.HasValue || o.ID > 0).Select(s => (int)s.ID).ToList(); using (var transaction = DB.Database.CurrentTransaction ?? DB.Database.BeginTransaction()) { if (memberIds.Count > 0) { var members = DB.APPLY_MEMBER.Where(o => memberIds.Contains(o.ID)).ToList(); foreach (var baseMb in members) { var updateMb = model.Member.Where(o => o.ID == baseMb.ID).First(); baseMb.MEMBER_IDEN_ID = updateMb.MemberIdentityID; baseMb.MEMBER_BIRDT = updateMb.MemberBirthday; baseMb.MERBER_NM = updateMb.MemberName; baseMb.MERBER_TP = updateMb.MemberType; baseMb.MAP_APPLY_ID = model.ApplyID; baseMb.REF_ACT_ID = model.ActivityID; baseMb.UPD_DT = DateTime.UtcNow.AddHours(8); this.DB.Entry(baseMb).State = EntityState.Modified; try { DB.SaveChanges(); } catch (Exception ex) { throw; } } } else { deleteMember = DB.APPLY_MEMBER.Where(o => o.REF_ACT_ID == model.ActivityID && o.MAP_APPLY_ID == model.ApplyID); DB.APPLY_MEMBER.RemoveRange(deleteMember); } deleteMember = DB.APPLY_MEMBER.Where(o => o.REF_ACT_ID == model.ActivityID && o.MAP_APPLY_ID == model.ApplyID && !memberIds.Contains(o.ID)); DB.APPLY_MEMBER.RemoveRange(deleteMember); List <APPLY_MEMBER> memberList = new List <APPLY_MEMBER>(); foreach (var member in model.Member) { if (!member.ID.HasValue || member.ID == 0) { APPLY_MEMBER temp = new APPLY_MEMBER() { MEMBER_IDEN_ID = member.MemberIdentityID, MEMBER_BIRDT = member.MemberBirthday, MERBER_NM = member.MemberName, MERBER_TP = member.MemberType, BUD_DT = DateTime.UtcNow.AddHours(8), UPD_DT = DateTime.UtcNow.AddHours(8), MAP_APPLY_ID = model.ApplyID, REF_ACT_ID = model.ActivityID }; memberList.Add(temp); } } ; DB.APPLY_MEMBER.AddRange(memberList); DB.SaveChanges(); try { DB.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } } result = GetApplyData(model.ApplyID, model.ActivityID); return(result); }