Пример #1
0
        private void TratarAtribuicoes(PlannerTask task, PlannerTasks objModel)
        {
            if (task.Assignments.Count <= 0)
            {
                return;
            }

            foreach (var assignment in task.Assignments)
            {
                var usuario = _context.Users.FirstOrDefault(p => p.Id == assignment.Key);

                if (usuario == null)
                {
                    var user = _usersService.ObterUsuarioPorId(assignment.Key).Result;
                    usuario = Users.FromModel(user);
                    if (usuario.Tasks == null)
                    {
                        usuario.Tasks = new List <PlannerTasks>();
                    }
                    usuario.Tasks.Add(objModel);
                    _context.Users.Add(usuario);
                    _context.SaveChanges();
                }
                else
                {
                    usuario.Tasks.Add(objModel);
                    _context.Users.Attach(usuario);
                    _context.Entry(usuario).State = EntityState.Modified;
                    _context.SaveChanges();
                }
            }
        }
Пример #2
0
        private async Task TratarPlanTasks(string idPlano)
        {
            var tasks = await _plannetService.RecuperarPlanTasks(idPlano);

            if (tasks.Count > 0)
            {
                foreach (var task in tasks.ToList())
                {
                    var objModel = PlannerTasks.FromModel(task);
                    objModel.PlanId = idPlano;

                    var bucket = _context.PlannerBuckets.FirstOrDefault(p => p.Id == objModel.BucketId);
                    if (bucket != null)
                    {
                        objModel.BucketName = bucket.Name;
                    }

                    var detalhes = _plannetService.RecuperarDetalheTarefaPorId(task.Id).Result;

                    if (detalhes != null)
                    {
                        if (task.HasDescription.HasValue && task.HasDescription.Value)
                        {
                            objModel.Description = detalhes.Description;
                        }
                    }

                    _context.PlannerTasks.Add(objModel);
                    _context.SaveChanges();

                    TratarAtribuicoes(task, objModel);

                    if (detalhes == null || !detalhes.Checklist.ToList().Any())
                    {
                        continue;
                    }

                    foreach (var checklist in detalhes.Checklist.ToList())
                    {
                        var checkModel = PlannerChecklistItems.FromModel(checklist.Value);
                        checkModel.Id     = checklist.Key;
                        checkModel.TaskId = task.Id;

                        if (_context.PlannerChecklistsItems.FirstOrDefault(p => p.Id == checkModel.Id) == null)
                        {
                            _context.PlannerChecklistsItems.Add(checkModel);
                            _context.SaveChanges();
                        }
                    }
                }
            }
        }