/// <summary>Cria um novo item e atribui à uma requisição</sumary>
        public ObjResult Post(ItemProgress progress, int user_id, int item_id, int item_status_id)
        {
            connection = db.GetCon();
            connection.Open();

            NpgsqlTransaction transaction = connection.BeginTransaction();
            ItemProgressDao   dao         = new ItemProgressDao(connection, transaction);
            ObjResult         result      = new ObjResult();

            try
            {
                progress.SetId(dao.Post(progress, user_id, item_id, item_status_id));
                transaction.Commit();
                result.Success();
                result.SetData(progress.GetId());
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new Exception(e.ToString());
            }
            finally
            {
                connection.Close();
                db.Close();
            }

            return(result);
        }
        /// <summary>Atualiza um item</sumary>
        public ObjResult Update(int item_progress_id, ItemProgress progress)
        {
            connection = db.GetCon();
            connection.Open();

            NpgsqlTransaction transaction = connection.BeginTransaction();
            ItemProgressDao   dao         = new ItemProgressDao(connection, transaction);
            ObjResult         result      = new ObjResult();

            try
            {
                item_progress_id = dao.Update(item_progress_id, progress);
                transaction.Commit();
                result.Success();
                result.SetData(item_progress_id);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new Exception(e.ToString());
            }
            finally
            {
                connection.Close();
                db.Close();
            }

            return(result);
        }
Example #3
0
        /// <summary>Cria um novo usuário</sumary>
        public ObjResult Post(User user)
        {
            connection = db.GetCon();
            connection.Open();

            NpgsqlTransaction transaction = connection.BeginTransaction();
            UserDao           dao         = new UserDao(connection, transaction);
            ObjResult         result      = new ObjResult();

            try
            {
                user.SetId(dao.Post(user));
                transaction.Commit();
                result.Success();
                result.SetData(user.GetId());
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new Exception(e.ToString());
            }
            finally
            {
                connection.Close();
            }

            return(result);
        }
        /// <summary>Define o status de um determinado item</sumary>
        public ObjResult SetStatus(int item_id, string status_name)
        {
            connection = db.GetCon();
            connection.Open();

            NpgsqlTransaction transaction = connection.BeginTransaction();
            RequestItemDao    dao         = new RequestItemDao(connection, transaction);
            ObjResult         result      = new ObjResult();

            try
            {
                item_id = dao.SetStatus(item_id, status_name);
                transaction.Commit();
                result.Success();
                result.SetData(item_id);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new Exception(e.ToString());
            }
            finally
            {
                connection.Close();
                db.Close();
            }

            return(result);
        }
        /// <summary>Exclui uma determinada mensagem</sumary>
        public ObjResult DeleteMessage(int msg_id)
        {
            connection = db.GetCon();
            connection.Open();
            NpgsqlTransaction transaction = connection.BeginTransaction();
            MessageDao        dao         = new MessageDao(connection, transaction);
            ObjResult         result      = new ObjResult();

            try
            {
                msg_id = dao.Delete(msg_id);
                result.SetData(msg_id);
                result.Success();
                transaction.Commit();
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new Exception(e.ToString());
            }
            finally
            {
                connection.Close();
            }

            return(result);
        }
        /// <summary>Atualiza uma requisição</sumary>
        public ObjResult Update(int request_id, Request request)
        {
            connection = db.GetCon();
            connection.Open();

            NpgsqlTransaction transaction = connection.BeginTransaction();
            RequestDao        dao         = new RequestDao(connection, transaction);
            ObjResult         result      = new ObjResult();

            try
            {
                request_id = dao.Update(request_id, request);
                transaction.Commit();
                result.Success();
                result.SetData(request_id);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new Exception(e.ToString());
            }
            finally
            {
                connection.Close();
                db.Close();
            }

            return(result);
        }
        /// <summary>Exclui uma determinada requisição</sumary>
        public ObjResult Delete(int request_id)
        {
            connection = db.GetCon();
            connection.Open();
            ObjResult          result   = new ObjResult();
            List <RequestItem> items    = new List <RequestItem>();
            List <Message>     messages = new List <Message>();

            // Excluir a requisição
            NpgsqlTransaction transaction = connection.BeginTransaction();
            RequestDao        dao         = new RequestDao(connection, transaction);
            RequestItemDao    itemDao     = new RequestItemDao(connection, transaction);
            MessageDao        messageDao  = new MessageDao(connection, transaction);

            try
            {
                // Verifica se a requisição possui itens
                items = itemDao.GetItemsByRequest(request_id);
                if (items.Count > 0)
                {
                    // Exclui todos os itens que pertencem à requisição
                    foreach (RequestItem item in items)
                    {
                        itemDao.Delete(item.itm_id);
                    }
                }

                // Verifica se a requisição possui mensagens
                messages = messageDao.GetMessagesBySourceKey(request_id);
                if (messages.Count > 0)
                {
                    // Exclui todas as mensagens associadas à requisição
                    foreach (Message msg in messages)
                    {
                        messageDao.Delete(msg.msg_id);
                    }
                }

                request_id = dao.Delete(request_id);
                result.SetData(request_id);
                result.Success();
                transaction.Commit();
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new Exception(e.ToString());
            }
            finally
            {
                connection.Close();
            }

            return(result);
        }
        /// <summary>Atualiza um item</sumary>
        public ObjResult Update(int item_id, RequestItem item, int user_id, string action)
        {
            connection = db.GetCon();
            connection.Open();

            RequestItemBusiness business      = new RequestItemBusiness(connection, null);
            List <string>       messages_list = new List <string>();
            ObjResult           result        = new ObjResult();

            try
            {
                item.SetId(item_id); // <-- Assegura que o item possua um id para atualização
                messages_list = business.Validate(item, user_id, action);
                if (messages_list.Count > 0)
                {
                    result.resultStatus   = "error";
                    result.resultMessages = messages_list;
                    connection.Close();
                    return(result);
                }
            }
            finally
            {
                connection.Close();
            }

            connection.Open();
            NpgsqlTransaction transaction = connection.BeginTransaction();
            RequestItemDao    dao         = new RequestItemDao(connection, transaction);

            try
            {
                item_id = dao.Update(item_id, item);
                transaction.Commit();
                result.Success();
                result.SetData(item_id);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new Exception(e.ToString());
            }
            finally
            {
                connection.Close();
                db.Close();
            }

            return(result);
        }
        /// <summary>Marca como importante uma determinada mensagem</sumary>
        public ObjResult MarkAsImportant(int msg_id)
        {
            connection = db.GetCon();
            connection.Open();

            MessageDao dao    = new MessageDao(connection, null);
            ObjResult  result = new ObjResult();

            try
            {
                msg_id = dao.IsImportant(msg_id);
                result.SetData(msg_id);
                result.Success();
            }
            finally
            {
                connection.Close();
            }

            return(result);
        }
        /// <summary>Exclui um determinado progresso de item</sumary>
        public ObjResult Delete(int item_progress_id)
        {
            connection = db.GetCon();
            connection.Open();

            ItemProgressDao dao    = new ItemProgressDao(connection, null);
            ObjResult       result = new ObjResult();

            try
            {
                item_progress_id = dao.Delete(item_progress_id);
                result.SetData(item_progress_id);
                result.Success();
            }
            finally
            {
                connection.Close();
                db.Close();
            }

            return(result);
        }
        /// <summary>Cancela um determinado item</sumary>
        public ObjResult Cancel(int item_id)
        {
            connection = db.GetCon();
            connection.Open();

            RequestItemDao dao    = new RequestItemDao(connection, null);
            ObjResult      result = new ObjResult();

            try
            {
                item_id = dao.Cancel(item_id);
                result.SetData(item_id);
                result.Success();
            }
            finally
            {
                connection.Close();
                db.Close();
            }

            return(result);
        }
Example #12
0
        /// <summary>Retorna uma determinada mensagem</sumary>
        public ObjResult GetMessageById(int msg_id)
        {
            connection = db.GetCon();
            connection.Open();

            Message    msg    = new Message();
            ObjResult  result = new ObjResult();
            MessageDao dao    = new MessageDao(connection, null);

            try
            {
                msg = dao.GetById(msg_id);
                result.SetData(msg);
                result.Success();
            }
            finally
            {
                connection.Close();
            }

            return(result);
        }
        /// <summary>Retorna as dependências de que existem do item para com a requisição</sumary>
        /// <values>A prioridade, a data limite e a aplicação</values>
        public ObjResult GetRequestDependencies(int request_id)
        {
            connection = db.GetCon();
            connection.Open();

            Request        request = new Request();
            ObjResult      result  = new ObjResult();
            RequestItemDao dao     = new RequestItemDao(connection, null);

            try
            {
                request = dao.GetRequestDependencies(request_id);
                result.SetData(request);
                result.Success();
            }
            finally
            {
                connection.Close();
                db.Close();
            }

            return(result);
        }
Example #14
0
        /// <summary>Retorna um determinado usuário</sumary>
        public ObjResult GetById(int user_id)
        {
            connection = db.GetCon();
            connection.Open();

            User      user   = new User();
            ObjResult result = new ObjResult();
            UserDao   dao    = new UserDao(connection, null);

            try
            {
                user = dao.GetById(user_id);
                result.SetData(user);
                result.Success();
            }
            finally
            {
                connection.Close();
                db.Close();
            }

            return(result);
        }
Example #15
0
        /// <summary>Faz a publicação de uma determinada requisição</sumary>
        public ObjResult Send(int request_id, int user_id, string action, Message msg)
        {
            connection = db.GetCon();
            connection.Open();

            Request         request       = new Request();
            ObjResult       result        = new ObjResult();
            List <string>   messages_list = new List <string>();
            RequestDao      requestDao    = new RequestDao(connection, null);
            RequestBusiness business      = new RequestBusiness(connection, null);

            try
            {
                // Validar requisição
                request = requestDao.GetById(request_id);
                Console.WriteLine("Status da requisição: " + request.req_status);
                messages_list = business.Validate(request, user_id, action);
                if (messages_list.Count > 0)
                {
                    result.resultStatus   = "error";
                    result.resultMessages = messages_list;
                    connection.Close();
                    return(result);
                }
            }
            finally
            {
                connection.Close();
            }

            connection.Open();
            NpgsqlTransaction transaction = connection.BeginTransaction();
            RequestItemDao    itemDao     = new RequestItemDao(connection, transaction);
            MessageDao        messageDao  = new MessageDao(connection, transaction);
            RequestDao        r_dao       = new RequestDao(connection, transaction);

            try
            {
                // Altera o status da requisição para ativa
                request_id = r_dao.ChangeStatus(request_id, 'A');

                // Altera o status de todos os itens para <AAT> Aguardando Aprovação Técnica
                foreach (RequestItem item in itemDao.GetItemsByRequest(request_id))
                {
                    itemDao.SetStatus(item.itm_id, "AAT");
                }

                // Envia mensagem e informa que foi gerada por meio de uma requisição de compra
                msg.SetSourceKey(request_id);
                msg.SetSourceType("request");
                messageDao.Post(msg);

                // Adiciona o status de sucesso e data
                result.Success();
                result.SetData(request_id);

                // Comita as alterações
                transaction.Commit();
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new Exception(e.ToString());
            }
            finally
            {
                connection.Close();
            }

            return(result);
        }