Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }