public IActionResult Add(Guid?id, string date = "") { var row = db.TblNotes.Include(a => a.TblNoteDates).Include(a => a.TblNoteRolls).SingleOrDefault(a => a.Id == id); if (row == null) { row = new web_db._note.TblNote() { FkuserAdd = User._getuserid().Value, DateAdd = DateTime.Now, }; row.TblNoteDates.Add(new web_db._note.TblNoteDate { FromDate = date.ToDate(), ToDate = date.ToDate() }); } if (row.TblNoteDates.Count < 2) { row.TblNoteDates.Add(new web_db._note.TblNoteDate { }); } ViewBag.users = db.TblUsers.Where(a => a.IsActive).ToList(); return(View(row)); }
public IActionResult Add(web_db._note.TblNote model, _UserRol._Rolls[] roll, Guid[] us, string delete, string date = "") { var row = db.TblNotes.Find(model.Id); if (delete.IsEmpty() == false) { if (row != null) { if (User._getRolAny(_UserRol._Rolls.TempAdmin)) { db.TblNoteRows.RemoveRange(db.TblNoteRows.Where(a => a.FkTblNote == row.Id)); db.TblNoteDates.RemoveRange(db.TblNoteDates.Where(a => a.FkTblNote == row.Id)); db.TblNoteRolls.RemoveRange(db.TblNoteRolls.Where(a => a.FkTblNote == row.Id)); db.TblNotes.Remove(row); db.SaveChanges(); } } return(Redirect(Request.UrlReferer())); } if (row == null) { row = new web_db._note.TblNote { Id = Guid.NewGuid(), DateAdd = DateTime.Now, FkuserAdd = User._getuserid().Value, }; db.TblNotes.Add(row); } if ((row.FkuserAdd != User._getuserid()) && User._getRolAny(_UserRol._Rolls.TempAdmin) == false) { return(Redirect(Request.UrlReferer())); } row.Txt = model.Txt.Trim(); row.Caption = model.Caption.Trim(); db.TblNoteRows.RemoveRange(db.TblNoteRows.Where(a => a.FkTblNote == row.Id)); db.TblNoteDates.RemoveRange(db.TblNoteDates.Where(a => a.FkTblNote == row.Id)); db.TblNoteRolls.RemoveRange(db.TblNoteRolls.Where(a => a.FkTblNote == row.Id)); List <web_db._note.TblNoteRoll> rols = new List <web_db._note.TblNoteRoll>(); if (User._getRolAny(_UserRol._Rolls.NoteAdmin)) { foreach (var item in roll) { var z = new web_db._note.TblNoteRoll { ForUserroll = item.ToString(), Id = Guid.NewGuid(), FkTblNote = row.Id }; db.TblNoteRolls.Add(z); rols.Add(z); } foreach (var item in us) { var z = new web_db._note.TblNoteRoll { ForUserId = item, Id = Guid.NewGuid(), FkTblNote = row.Id }; db.TblNoteRolls.Add(z); rols.Add(z); } } if (User._getRolAny(_UserRol._Rolls.NoteAdmin) == false || ((roll.Any() == false) && (us.Any() == false))) { var z = new web_db._note.TblNoteRoll { ForUserId = User._getuserid(), Id = Guid.NewGuid(), FkTblNote = row.Id }; db.TblNoteRolls.Add(z); rols.Add(z); } foreach (var itemd in model.TblNoteDates) { if (itemd._ToDate.IsEmpty() || itemd._FromDate.IsEmpty()) { break; } itemd.FromDate = itemd._FromDate.ToDate(); itemd.ToDate = itemd._ToDate.ToDate(); db.TblNoteDates.Add(new web_db._note.TblNoteDate { Id = Guid.NewGuid(), FromDate = itemd.FromDate, SendSms = itemd.SendSms, KindBesorat = itemd.KindBesorat, ToDate = itemd.ToDate, FkTblNote = row.Id }); List <DateTime> dates = new List <DateTime>(); var d = itemd.FromDate.Value; while (itemd.ToDate >= d) { dates.Add(d); switch (itemd.KindBesorat) { case web_db._note.TblNoteDate.Kind.Harroz: d = d.AddDays(1); break; case web_db._note.TblNoteDate.Kind.HarHafte: d = d.AddDays(7); break; case web_db._note.TblNoteDate.Kind.Har2Hafte: d = d.AddDays(7); break; case web_db._note.TblNoteDate.Kind.Har4Week: d = d.AddDays(7 * 4); break; case web_db._note.TblNoteDate.Kind.HarMah: d = d.ToPersianAddMonths(1); break; default: break; } } foreach (var item in dates) { foreach (var itemr in rols) { db.TblNoteRows.Add(new web_db._note.TblNoteRows { Date = item, ForUserId = itemr.ForUserId, ForUserroll = itemr.ForUserroll, Id = Guid.NewGuid(), FkTblNote = row.Id, SendSms = itemd.SendSms, }); } } } db.SaveChanges(); return(Redirect(Request.UrlReferer())); }