public JsonResult UpdateReqTemplate([FromBody] SimplifiedReqTemplateViewModel item)
        {
            if (item != null)
            {
                item.UpdateUser = User.Identity.Name;
                var updatedItem = DBSimplifiedReqTemplates.Update(item.ParseToDB());

                if (updatedItem != null)
                {
                    item             = updatedItem.ParseToViewModel();
                    item.eReasonCode = 1;
                    item.eMessage    = "Registo atualizado com sucesso.";
                }
                else
                {
                    item.eReasonCode = 2;
                    item.eMessage    = "Ocorreu um erro ao atualizar o modelo de requisição simplificada.";
                }
            }
            else
            {
                item = new SimplifiedReqTemplateViewModel()
                {
                    eReasonCode = 3,
                    eMessage    = "Ocorreu um erro ao atualizar. O modelo de requisição simplificado não pode ser nulo."
                };
            }
            return(Json(item));
        }
        public JsonResult DeleteReqTemplate([FromBody] SimplifiedReqTemplateViewModel item)
        {
            ErrorHandler errorHandler = new ErrorHandler()
            {
                eReasonCode = 2,
                eMessage    = "Ocorreu um erro ao eliminar o registo."
            };

            try
            {
                if (item != null)
                {
                    bool sucess = DBSimplifiedReqTemplates.Delete(item.ParseToDB());
                    if (sucess)
                    {
                        item.eReasonCode = 1;
                        item.eMessage    = "Registo eliminado com sucesso.";
                    }
                }
                else
                {
                    item = new SimplifiedReqTemplateViewModel();
                }
            }
            catch
            {
                item.eReasonCode = errorHandler.eReasonCode;
                item.eMessage    = errorHandler.eMessage;
            }
            return(Json(item));
        }
        public JsonResult CreateReqTemplate([FromBody] SimplifiedReqTemplateViewModel item)
        {
            try
            {
                if (item != null)
                {
                    //Get Numeration
                    bool         autoGenId = false;
                    Configuração conf      = DBConfigurations.GetById(1);
                    int          entityNumerationConfId = conf.NumeraçãoModReqSimplificadas.Value;

                    if (item.RequisitionTemplateId == "" || item.RequisitionTemplateId == null)
                    {
                        autoGenId = true;
                        item.RequisitionTemplateId = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false);
                    }
                    if (item.RequisitionTemplateId != null)
                    {
                        item.CreateUser = User.Identity.Name;
                        var createdItem = DBSimplifiedReqTemplates.Create(item.ParseToDB());
                        if (createdItem != null)
                        {
                            item = createdItem.ParseToViewModel();
                            if (autoGenId)
                            {
                                ConfiguraçãoNumerações configNum = DBNumerationConfigurations.GetById(entityNumerationConfId);
                                configNum.ÚltimoNºUsado         = item.RequisitionTemplateId;
                                configNum.UtilizadorModificação = User.Identity.Name;
                                DBNumerationConfigurations.Update(configNum);
                            }
                            item.eReasonCode = 1;
                            item.eMessage    = "Registo criado com sucesso.";
                        }
                        else
                        {
                            item.eReasonCode = 3;
                            item.eMessage    = "Ocorreu um erro ao inserir os dados na base de dados.";
                        }
                    }
                    else
                    {
                        item.eReasonCode = 5;
                        item.eMessage    = "A numeração configurada não é compativel com a inserida.";
                    }
                }
            }
            catch (Exception)
            {
                item.eReasonCode = 2;
                item.eMessage    = "Ocorreu um erro ao criar o modelo de requisição simplificado.";
            }
            return(Json(item));
        }