public async Task <ActionResult <Phase> > PutUser([FromBody] PhaseDelete model) { //tìm phase cần sửa var item = await _context.Phase.FirstOrDefaultAsync(x => x.Id.Equals(model.Id)); //check phase khác null if (item == null) { return(NotFound()); } //sửa lại limitUser item.LimitUser = model.LimitUser; foreach (var a in model.UsersHasPhase) { var userItem = _context.UsersHasPhase.Where(x => x.PhaseId == a.PhaseId && x.UsersId == a.UsersId).FirstOrDefault(); if (userItem == null) { var newUserPhase = new UsersHasPhase { PhaseId = a.PhaseId, UsersId = a.UsersId }; _context.UsersHasPhase.AddRange(newUserPhase); } } foreach (var b in model.UserDelete) { var userDel = _context.UsersHasPhase.Where(x => x.PhaseId == b.PhaseId && x.UsersId == b.UsersId).FirstOrDefault(); _context.UsersHasPhase.RemoveRange(userDel); } await _context.SaveChangesAsync(); return(item); }
public async Task <ActionResult <Phase> > Create(Phase phase) { var newPhase = new Phase { Id = phase.Id, PhaseName = phase.PhaseName, Icon = phase.Icon, Description = phase.Description, IsFirstPhase = phase.IsFirstPhase, IsTb = phase.IsTb, IsTc = phase.IsTc, LimitUser = phase.LimitUser, ProcessId = phase.ProcessId, Index = phase.Index }; foreach (var a in phase.FieldData) { var newField = new FieldData { Id = a.Id, FieldName = a.FieldName, Description = a.Description, Required = a.Required, Type = a.Type, PhaseId = newPhase.Id }; _context.FieldData.AddRange(newField); foreach (var b in a.Option) { var option = new Models.Option { Id = b.Id, Value = b.Value, FieldDataId = newField.Id }; _context.Option.AddRange(option); } } foreach (var a in phase.UsersHasPhase) { var users = new UsersHasPhase { UsersId = a.UsersId, PhaseId = a.PhaseId }; _context.UsersHasPhase.AddRange(users); } _context.Phase.Add(newPhase); await _context.SaveChangesAsync(); return(CreatedAtAction( nameof(GetPhaseId), new { id = newPhase.Id }, newPhase)); }