Ejemplo n.º 1
0
        public async Task <IHttpActionResult> Save([FromBody] RespuestaFormModel formModel)
        {
            GenericResult itemResult = null;

            try
            {
                if (await _authorizationService.AuthorizeAsync(User))
                {
                    if (ModelState.IsValid)
                    {
                        var respuesta = _respuestaService.Get(formModel.Id) ?? new Respuesta();

                        respuesta.Valor          = formModel.Valor;
                        respuesta.Detalle        = formModel.Detalle;
                        respuesta.FechaRespuesta = formModel.FechaRespuesta;

                        if (respuesta.Id == Guid.Empty)
                        {
                            respuesta.CreadoPor = User.Identity.Name;
                            respuesta.CreadoEn  = DateTime.Now;
                        }

                        respuesta.ActualizadoPor = User.Identity.Name;
                        respuesta.ActualizadoEn  = DateTime.Now;

                        var estandar = _estandarService.Get(formModel.EstandarId);
                        respuesta.Estandar = estandar;

                        var evaluacion = _evaluacionService.Get(formModel.EvaluacionId);
                        respuesta.Evaluacion = evaluacion;

                        var confirmation = _respuestaService.SaveOrUpdate(respuesta);
                        if (confirmation.WasSuccessful)
                        {
                            itemResult = GenericResult.Ok(confirmation.Message);
                            var item = confirmation.Value as Respuesta;
                            itemResult.ReturnValue = new { Id = item.Id };
                        }
                        else
                        {
                            itemResult = GenericResult.Failure(confirmation.Message);
                        }
                    }
                }
                else
                {
                    var codeResult = new CodeResultStatus(401);
                    return(Ok(codeResult));
                }
            }
            catch (Exception exception)
            {
                itemResult = GenericResult.Failure(exception.Message);
            }

            return(Ok(itemResult));
        }
Ejemplo n.º 2
0
        public ActionConfirmation CreateRespuestasByEvaluacion(Guid evaluacionId)
        {
            var evaluacion = Get(evaluacionId);

            if (evaluacion == null)
            {
                return(ActionConfirmation.CreateFailure("item no existe"));
            }

            try
            {
                var responsesToCreate = new List <Estandar>();

                var groups = _estandarService.GetGruposList();
                foreach (var grupoEstandar in groups)
                {
                    var headers = _estandarService.GetByGrupo(grupoEstandar.Id);
                    foreach (var header in headers)
                    {
                        var estandares = _estandarService.GetByParent(header.Id);
                        foreach (var estandar in estandares)
                        {
                            responsesToCreate.Add(estandar);

                            var picklist = _estandarService.GetPicklist(estandar.Id);
                            responsesToCreate.AddRange(picklist);

                            var subEstandares = _estandarService.GetByParent(estandar.Id);
                            foreach (var subEstandar in subEstandares)
                            {
                                responsesToCreate.Add(subEstandar);

                                var subpicklist = _estandarService.GetPicklist(subEstandar.Id);
                                responsesToCreate.AddRange(subpicklist);

                                var childEstandares = _estandarService.GetByParent(subEstandar.Id);
                                foreach (var childEstandar in childEstandares)
                                {
                                    responsesToCreate.Add(childEstandar);

                                    var childpicklist = _estandarService.GetPicklist(childEstandar.Id);
                                    responsesToCreate.AddRange(childpicklist);

                                    var subchildEstandares = _estandarService.GetByParent(childEstandar.Id);
                                    foreach (var subchildEstandar in subchildEstandares)
                                    {
                                        responsesToCreate.Add(subchildEstandar);

                                        var subchildpicklist = _estandarService.GetPicklist(subchildEstandar.Id);
                                        responsesToCreate.AddRange(subchildpicklist);
                                    }
                                }
                            }
                        }
                    }
                }

                // Create Responses
                var respCreated = new List <Respuesta>();
                if (responsesToCreate.Any())
                {
                    foreach (var estandar in responsesToCreate)
                    {
                        var respuesta = new Respuesta
                        {
                            Detalle        = "",
                            FechaRespuesta = DateTime.Now,
                            CreadoPor      = evaluacion.CreadoPor,
                            CreadoEn       = DateTime.Now,
                            ActualizadoPor = evaluacion.ActualizadoPor,
                            ActualizadoEn  = DateTime.Now,
                            Estandar       = estandar,
                            Evaluacion     = evaluacion,
                            Valor          = (short)ValorRespuesta.Nulo
                        };


                        var respConfirmation = _respuestaService.SaveOrUpdate(respuesta);
                        if (respConfirmation.WasSuccessful)
                        {
                            if (estandar.TipoEstandar == (short)TipoEstandar.Estandar)
                            {
                                var dbResponse = _respuestaService.Get(respuesta.Id);
                                var comment    = new RespuestaComentario
                                {
                                    Detalle        = "",
                                    Valor          = "",
                                    CreadoPor      = evaluacion.CreadoPor,
                                    CreadoEn       = DateTime.Now,
                                    ActualizadoPor = evaluacion.ActualizadoPor,
                                    ActualizadoEn  = DateTime.Now,
                                    Respuesta      = dbResponse
                                };

                                var commentConfirm = _respuestaService.SaveOrUpdateComentario(comment);
                            }

                            respCreated.Add(respuesta);
                        }
                    }
                }

                return(ActionConfirmation.CreateSuccess($"respuestas creadas ({respCreated.Count})"));
            }
            catch (Exception exception)
            {
                _eventLogService.AddException(exception.Message,
                                              exception.StackTrace, EventCategory.GuardarObjeto.ToString(), exception, evaluacion.ActualizadoPor, EventSource.Sistema);

                return(ActionConfirmation.CreateFailure(exception.ToString()));
            }
        }