Exemplo n.º 1
0
        /// <summary>
        ///     Mapea un modelo de vista
        ///     a una entidad
        /// </summary>
        public requests ViewModelToEntity(RequestViewModel model)
        {
            requests result = new requests();

            result.UserId       = model.UserId;
            result.RequestId    = model.RequestId;
            result.ConceptId    = model.ConceptId;
            result.AuthorizeId  = model.AuthorizeId;
            result.CopyId       = model.CopyId;
            result.Type         = model.Type;
            result.RegStatus    = model.RegStatus;
            result.CreatedAt    = Convert.ToDateTime(model.CreatedAt);
            result.UpdatedAt    = Convert.ToDateTime(model.UpdatedAt);
            result.questions    = model.Questions;
            result.LockAutorize = model.LockAutorize;
            result.LockCopy     = model.LockCopy;

            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        ///    Aprueba una solicitud
        /// </summary>
        public requests Approve(requests req)
        {
            //actualiza las respuestas
            if (req.questions != null)
            {
                foreach (var item in req.questions)
                {
                    var question = DataBaseEntities.questions.Where(w => w.questionId == item.questionId).FirstOrDefault();

                    if (question != null)
                    {
                        question.Answer = string.IsNullOrEmpty(item.Answer) ? string.Empty : item.Answer;
                        var questionUpdate = DataBaseEntities.Entry(question);
                        questionUpdate.State = EntityState.Modified;
                    }
                }
            }

            //Actualiza la solicitud
            requests reqEntity = DataBaseEntities.requests.Where(w => w.RequestId == req.RequestId).FirstOrDefault();

            if (reqEntity != null)
            {
                //si no es obligatorio puedo actualizar
                if (reqEntity.LockAutorize != 2)
                {
                    reqEntity.AuthorizeId = req.AuthorizeId;
                }

                if (reqEntity.LockCopy != 2)
                {
                    reqEntity.CopyId = req.CopyId;
                }

                reqEntity.Type = 1;

                var update = DataBaseEntities.Entry(reqEntity);
                update.State = EntityState.Modified;
                DataBaseEntities.SaveChanges();
            }

            return(reqEntity);
        }
Exemplo n.º 3
0
        /// <summary>
        ///      Registra una nueva solicitud
        /// </summary>
        public requests Register(requests req)
        {
            DateTime dateTime = DateTime.Now;

            try
            {
                req.CreatedAt = dateTime;
                req.RegStatus = true;

                DataBaseEntities.requests.Add(req);
                DataBaseEntities.SaveChanges();
                DataBaseEntities.Entry(req).GetDatabaseValues();

                return(req);
            }
            catch (Exception dbEx)
            {
                return(null);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        ///     mapea un objeto entidad
        ///     a un modelo de vista
        /// </summary>
        public RequestViewModel EntityToViewModel(requests entity)
        {
            var model = new RequestViewModel();

            model.RequestId    = entity.RequestId;
            model.UserId       = entity.UserId;
            model.ConceptId    = entity.ConceptId;
            model.AuthorizeId  = entity.AuthorizeId;
            model.CopyId       = entity.CopyId;
            model.Type         = entity.Type;
            model.RegStatus    = entity.RegStatus;
            model.CreatedAt    = entity.CreatedAt.ToString("dd/MM/yyyy");
            model.UpdatedAt    = entity.UpdatedAt.ToString("dd/MM/yyyy");
            model.QuestionsVM  = new List <QuestionViewModel>();
            model.LockCopy     = entity.LockCopy;
            model.LockAutorize = entity.LockAutorize;

            //get aditional info
            var userRequest = UserObject.GetById(entity.UserId);

            //preguntas
            foreach (var item in entity.questions)
            {
                QuestionViewModel questionVM = new QuestionViewModel
                {
                    RequestId  = item.RequestId,
                    questionId = item.questionId,
                    RegStatus  = item.RegStatus,
                    Text       = item.Text,
                    Answer     = item.Answer,
                    CreatedAt  = item.CreatedAt.ToShortDateString(),
                    UpdatedAt  = item.UpdatedAt.ToShortDateString()
                };

                model.QuestionsVM.Add(questionVM);
            }

            //usuario
            if (userRequest != null)
            {
                model.UserName = userRequest.Name;
            }

            //concepto
            if (entity.concept != null)
            {
                model.ConceptName = entity.concept.Nombre;
            }

            //status (0:Solicitado, 1:Aprobado, 2:Autorizado, 3:Rechazado)
            switch (entity.Type)
            {
            case 0:
                model.StatusName = "Solicitado";
                break;

            case 1:
                model.StatusName = "Aprobado";
                break;

            case 2:
                model.StatusName = "Autorizado";
                break;

            case 3:
                model.StatusName = "Rechazado";
                break;
            }

            return(model);
        }