/// <summary> /// Inserts or Updates a Clan War depending on the parameters received. /// </summary> /// <param name="clanWarViewModel">A ClanWarViewModel object, if its Id is NULL then do an Insert, else Updates.</param> public static int Upsert(ClanWarUpsertViewModel clanWarViewModel, int userId) { Enums.Action action = Enums.Action.Create; ClanWar clanWar = ClanWarManager.ConvertViewToModel(clanWarViewModel); using (var dbContext = new HouseOfClansEntities()) { if (clanWarViewModel.Id == null) { clanWar.addedOn = DateTime.Now; dbContext.ClanWars.Add(clanWar); if (dbContext.SaveChanges() > 0) { ActionLogManager.Log <ClanWarUpsertViewModel>(action, userId, null, null, string.Format("Clan War Id: {0}", clanWar.id)); } } else { ClanWar original = ClanWarManager.SelectByClanWarId(clanWar.id); action = Enums.Action.Update; clanWar.updatedOn = DateTime.Now; dbContext.Entry(clanWar).State = EntityState.Modified; if (dbContext.SaveChanges() > 0) { List <ActionLog> changes = GetChanges(clanWar, original); ActionLogManager.Log <ClanWarUpsertViewModel>(action, userId, changes); } } } return(clanWar.id); }
public ActionResult Edit(ClanWarUpsertViewModel clanWar) { ActionResult result = View(); try { ClanUser clanUser = HttpContext.GetCurrentLoginInformation(); int clanWarId = ClanWarManager.Upsert(clanWar, clanUser.id); if (clanWarId > 0) { //Insert member picks //vv List<WarRanking> rankings = new List<WarRanking>(); List <ClanWarPickViewModel> picks = new List <ClanWarPickViewModel>(); List <ClanUser> clanMembers = ClanUserManager.SelectAllByClanId(clanWar.ClanId); short i = 1; foreach (ClanUser member in clanMembers) { WarRanking ranking = new WarRanking() { clanUserId = member.id, clanWarId = clanWarId }; //vv rankings.Add(ranking); ClanWarPickViewModel pick = new ClanWarPickViewModel() { ClanUserId = member.id, ClanMemberWarPosition = i, ClanWarId = clanWarId, PickVS = i }; picks.Add(pick); i++; } //vv RankingsManager.Upsert(rankings); ClanWarPicksManager.Upsert(picks); } //TODO //vv an Else here should display a message stating that the war was not inserted (and no exception apparently) result = RedirectToAction("Index"); } catch { result = View(clanWar); } return(result); }
public ActionResult Create() { ClanUser clanUser = HttpContext.GetCurrentLoginInformation(); int clanId = clanUser.clanId != null ? (int)clanUser.clanId : 0; ClanWarUpsertViewModel clanWar = new ClanWarUpsertViewModel(); clanWar.ClanId = clanId; clanWar.WarStartedOn = DateTime.Now.AddDays(1); return(View("Edit", clanWar)); }
public ActionResult Details(int id, string warNote) { ActionResult result = View(); ClanUser clanUser = HttpContext.GetCurrentLoginInformation(); ClanWarUpsertViewModel clanWarInfo = ClanWarUpsertViewModel.Get(id); //The only updatable field when war started is the war notes. clanWarInfo.WarNote = warNote; ClanWarManager.Upsert(clanWarInfo, clanUser.id); result = RedirectToAction("Index"); return(result); }
private static ClanWar ConvertViewToModel(ClanWarUpsertViewModel viewModel) { ClanWar model = new ClanWar(); model.id = viewModel.Id ?? 0; model.warTypeId = viewModel.WarTypeId; model.clanId = viewModel.ClanId; model.clanVS = viewModel.ClanVS; model.clanVSTag = viewModel.ClanVSTag; model.note = viewModel.Note; model.warStartedOn = viewModel.WarStartedOn; model.warNote = viewModel.WarNote; model.isFinalized = viewModel.IsFinalized; model.addedOn = viewModel.AddedOn; model.updatedOn = viewModel.UpdatedOn; return(model); }
public ActionResult Edit(int id) { ClanWarUpsertViewModel clanWarInfo = ClanWarUpsertViewModel.Get(id); return(View(clanWarInfo)); }