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)); }
public async Task Create(PlanAccion model) { try { _db.planAccion.Add(model); await _db.SaveChangesAsync(); } catch (Exception e) { throw new Exception(e.Message, e); } }
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); } }
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); }