コード例 #1
0
        public PlanAccionResponse Handle(PlanAccionRequest request)
        {
            var verificarPlazoAperturaService = new VerificarPlazoAperturaService(_plazoAperturaRepository);
            var planAccion = _planAccionRepository.FindByActividad(request.ActividadId);

            if (planAccion != null)
            {
                return(new PlanAccionResponse("Ya existe un plan de acción para esta actividad", "Error", planAccion));
            }

            var actividad = _actividadRepository.Find(request.ActividadId);

            if (actividad == null)
            {
                return(new PlanAccionResponse("Debe tener una actividad asignada para crear una plan de acciones", "Error", planAccion));
            }
            var verificacionPlazoApertura = verificarPlazoAperturaService.Handle(actividad.Asignador.Identificacion);

            if (verificacionPlazoApertura.Contains("Error"))
            {
                return(new PlanAccionResponse(verificacionPlazoApertura, "Error", null));
            }

            planAccion = new PlanAccion();
            var errors = canConvertToItemPlanList(request.Items);

            if (errors.Any())
            {
                return(new PlanAccionResponse(StringUtils.ToString(errors), "Error", planAccion));
            }
            var items = ConvertToItemPlanList(request.Items);

            errors.AddRange(planAccion.CanDeliver(items, actividad));
            if (errors.Any())
            {
                return(new PlanAccionResponse(StringUtils.ToString(errors), "Error", planAccion));
            }
            planAccion.Deliver(items, actividad);
            var response = "";

            try
            {
                _planAccionRepository.Add(planAccion);
                response = "Plan de accion registrado correctamente";
                actividad.ChangeToPlaneada();
                _actividadRepository.Update(actividad);
            }
            catch (Exception e)
            {
                return(new PlanAccionResponse("No se pudo registrar", "Error", null));
            }
            _unitOfWork.Commit();
            if (actividad.Responsable == null)
            {
                return(new PlanAccionResponse("No trajo docente", "Error", planAccion));
            }
            _emailServer.Send("Nueva plan registrado", $"Se registro el plan de acciones", actividad.Responsable.Email);
            return(new PlanAccionResponse(response, "Ok", planAccion));
        }
コード例 #2
0
 public async Task Create(PlanAccion model)
 {
     try
     {
         _db.planAccion.Add(model);
         await _db.SaveChangesAsync();
     }
     catch (Exception e)
     {
         throw new Exception(e.Message, e);
     }
 }
コード例 #3
0
        public async Task Update(PlanAccion model)
        {
            try
            {
                var _model = await _db.planAccion.FirstOrDefaultAsync(e => e.Id == model.Id);

                if (_model != null)
                {
                    _db.Entry(_model).CurrentValues.SetValues(model);
                    await _db.SaveChangesAsync();
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
コード例 #4
0
        public static PlanAccion CreatePlanAccion()
        {
            var actividad      = ActividadMother.CreateActividad();
            var accionPlaneada = new AccionPlaneada();

            accionPlaneada.Deliver("Se describe lo planeado");
            var accionRealizada = new AccionRealizada();
            var evidencia       = new Evidencia();

            evidencia.Deliver("loquesea/dir");
            accionRealizada.Deliver("Se describe lo realizado", evidencia);
            var itemPlan = new ItemPlan();

            itemPlan.Deliver(accionPlaneada, accionRealizada, 0);
            var items = new List <ItemPlan>();

            items.Add(itemPlan);
            var planAccion = new PlanAccion(items, actividad);

            return(planAccion);
        }