Exemple #1
0
        public ITicket CreateTicket(ICreateTicket ticket)
        {
            ITicket       result       = (ITicket)serviceProvider.GetService(typeof(ITicket));
            ITicketStatus ticketStatus = (ITicketStatus)serviceProvider.GetService(typeof(ITicketStatus));

            ////////////////////////////////////////////////////////////////
            // Add Persistence here either using ADO.net or Entity Framework.
            // TODO: DATABASE
            ////////////////////////////////////////////////////////////////
            ///


            // Presume data persisted succesfully, create return model.
            // Refactor this.
            ticketStatus.Status_Code        = 1;
            ticketStatus.Status_Description = "CREATED";
            ticketStatus.Status_Name        = "CREATED";
            ticketStatus.TicketStatusId     = 2;


            // Persist to storage / TODO:
            result.Created   = ticket.Created;
            result.Detail    = ticket.Detail;
            result.Requestor = ticket.Requestor;
            result.Status    = ticketStatus;
            result.Subject   = ticket.Subject;
            result.TicketId  = 1;


            return(result);
        }
Exemple #2
0
        public async Task <ITicketStatus> Update(ITicketStatus entity)
        {
            TTicketStatus tEntity = entity as TTicketStatus;

            var errors = await this.ValidateEntityToCheckExistsAtUpdate(tEntity);

            if (errors.Count() > 0)
            {
                await this.ThrowEntityException(errors);
            }

            try
            {
                this.StartTransaction();
                await base.Update(tEntity, x => new
                {
                    x.Name,
                    x.Description,
                    x.Enabled,
                    x.ModifiedBy,
                    x.ModifiedDate
                });

                this.CommitTransaction();
                return(tEntity);
            }
            catch (PostgresException ex)
            {
                throw new EntityUpdateException(ex);
            }
            catch
            {
                throw;
            }
        }
Exemple #3
0
        public async Task <ITicketStatus> AddNew(ITicketStatus entity)
        {
            TTicketStatus tEntity = entity as TTicketStatus;

            var errors = await this.ValidateEntityToCheckExists(tEntity);

            if (errors.Count() > 0)
            {
                await this.ThrowEntityException(errors);
            }

            try
            {
                this.StartTransaction();
                var savedEntity = await base.AddNew(entity as TTicketStatus);

                this.CommitTransaction();

                return(savedEntity);
            }
            catch (PostgresException ex)
            {
                throw new EntityUpdateException(ex);
            }
            catch
            {
                throw;
            }
        }
Exemple #4
0
 static TicketHelpers()
 {
     TicketStatus   = new TicketStatusService();
     TicketCategory = new TicketCategoryService();
     TicketPriority = new TicketPriorityService();
     TicketType     = new TicketTypeService();
     UserRepository = new UserService();
 }
Exemple #5
0
 public TicketsController(IGenericRepository <Department> departmentsRepository, ITicketsRepository <Ticket> ticketsRepository,
                          ITicketsMailer ticketsMailer, ITicketStatus <TicketStatus> ticketsStatusRepository, AuthHelper authHelper)
 {
     this.departmentsRepository   = departmentsRepository;
     this.ticketsRepository       = ticketsRepository;
     this.ticketsMailer           = ticketsMailer;
     this.ticketsStatusRepository = ticketsStatusRepository;
     this.staffManager            = authHelper.GetStaffManagerFromOwinContext;
 }
Exemple #6
0
 public TicketController()
 {
     _categoryService       = new CategoryService();
     _ticketService         = new TicketService();
     _userService           = new UserService();
     _ticketCategoryService = new TicketCategoryService();
     _ticketPriority        = new TicketPriorityService();
     _ticketStatus          = new TicketStatusService();
     _ticketType            = new TicketTypeService();
     _emailService          = new Core.Implementation.EmailService();
     _ticketProject         = new TicketProjectService();
 }
Exemple #7
0
        public ICreateTicketResponseModel Build(IServiceProvider serviceProvider, ITicketStatus ticketStatus, int ticketId = -1, Exception e = null)
        {
            ICreateTicketResponseModel response;

            try
            {
                response = CreateTicketResponse(serviceProvider, ticketStatus, ticketId, e);
            }
            catch (Exception x)
            {
                return(CreateTicketResponse(serviceProvider, ticketStatus, ticketId, e));
            }

            return(response);
        }
Exemple #8
0
        public async Task <ITicketStatus> AddNew(ITicketStatus entity)
        {
            try
            {
                this.StartTransaction();
                var savedEntity = await base.AddNew(entity as TTicketStatus);

                this.CommitTransaction();

                return(savedEntity);
            }
            catch (PostgresException ex)
            {
                throw new EntityUpdateException(ex);
            }
            catch
            {
                throw;
            }
        }
Exemple #9
0
        private ICreateTicketResponseModel CreateTicketResponse(IServiceProvider serviceProvider, ITicketStatus ticketStatus, int ticketId = -1, Exception e = null)
        {
            ICreateTicketResponseModel response;

            if (ticketStatus == null)
            {
                ticketStatus = (ITicketStatus)serviceProvider.GetService(typeof(ITicketStatus));

                if (e != null)
                {
                    ticketStatus.Status_Description = e.Message;
                }
                else
                {
                    ticketStatus.Status_Description = "An general error has occurred, please see application logs.";
                }


                ticketStatus.Status_Code    = -1;
                ticketStatus.Status_Name    = "ERROR";
                ticketStatus.TicketStatusId = -1;
            }


            response = (ICreateTicketResponseModel)serviceProvider.GetService(typeof(ICreateTicketResponseModel));

            response.Status = ticketStatus;

            response.TicketId = (int)ticketId;

            return(response);
        }
Exemple #10
0
        public ICreateTicketResponseModel Create(ICreateTicketRequestModel request)
        {
            ICreateTicketResponseModel ticketResponseTransform;


            try
            {
                ICreateTicket transformModel = (ICreateTicket)serviceProvider.GetService(typeof(ICreateTicket));
                ITicketStatus ticketStatus   = (ITicketStatus)serviceProvider.GetService(typeof(ITicketStatus));

                // Simulate a failure / Shouldnt get to this point anyways as the Model would be invalid
                // due to the property requiring a value. Will prevent whitespace though.
                if (string.IsNullOrWhiteSpace(request.Detail) || string.IsNullOrWhiteSpace(request.Subject))
                {
                    // Persist to storage / TODO:
                    // Do this as a specific type of exception. (custom)
                    // TODO: Debug Logging
                    ticketResponseTransform = (ICreateTicketResponseModel)serviceProvider.GetService(typeof(ICreateTicketResponseModel));

                    // TODO: Debug Logging
                    ticketStatus.Status_Code        = 0;
                    ticketStatus.Status_Description = "Unable to create ticket due to incomplete model";
                    ticketStatus.Status_Name        = "ERROR";
                    ticketStatus.TicketStatusId     = 1;

                    ticketResponseTransform.Status = ticketStatus;

                    return(ticketResponseTransform);
                }



                // Transform the ICreateTicketRequestModel into an ICreateTicket
                // Add some additional value. to the model
                // Could use AutoMapper or another tool, but will do it manually for now.
                // Would refactor this later on into its own method.

                // TODO: Debug Logging
                ticketStatus.Status_Code        = 0;
                ticketStatus.Status_Description = "CREATE";
                ticketStatus.Status_Name        = "CREATE";
                ticketStatus.TicketStatusId     = 1;


                transformModel.Subject   = request.Subject;
                transformModel.Status    = ticketStatus;
                transformModel.Requestor = request.Requestor;
                transformModel.Detail    = request.Detail;
                transformModel.Created   = DateTime.UtcNow;


                var createComplete = ticketRepository.CreateTicket(transformModel);
                // TODO: Debug Logging


                // Create the response model (subset of properties, based on the ITicket)
                ticketResponseTransform          = (ICreateTicketResponseModel)serviceProvider.GetService(typeof(ICreateTicketResponseModel));
                ticketResponseTransform.TicketId = createComplete.TicketId;
                ticketResponseTransform.Status   = createComplete.Status;
            }
            catch (Exception ex)
            {
                // TODO: exception Logging
                throw ex;
            }

            return(ticketResponseTransform);
        }