/// <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); }
/// <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); }
/// <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); } }
/// <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); }