public EventActorState(TicketEvent ev)
 {
     Tickets          = ev.TotalTickets;
     RequestedTickets = 0;
     FailedTickets    = 0;
     CancelledTickets = 0;
     Orders           = new List <TicketOrder>();
 }
Пример #2
0
 public void EventUpdate(TicketEvent ticketEvent)
 {
     using (var connection = new SqlConnection(CONN))
     {
         connection.Open();
         connection.Query <TicketEvent>("UPDATE TicketEvent SET TicketEvent [EventName] = @EventName, [EventHtmlDescription] = @EventHtmlDescription WHERE TicketEventID = @TicketEventID", new { EventName = ticketEvent.EventName, EventHtmlDescription = ticketEvent.EventHtmlDescription, TicketEventID = ticketEvent.TicketEventID });
     }
 }
Пример #3
0
        public static int UpdateEvent(int DeptID, int NotificationRuleId, TicketEvent NotificationEvent, bool Enabled)
        {
            SqlParameter _pRVAL = new SqlParameter("@RETURN_VALUE", SqlDbType.Int);

            _pRVAL.Direction = ParameterDirection.ReturnValue;
            UpdateData("sp_UpdateNotificationRuleEvent", new SqlParameter[] { _pRVAL, new SqlParameter("@DId", DeptID), new SqlParameter("@NotificationRuleId", NotificationRuleId), new SqlParameter("@EventType", (byte)NotificationEvent), new SqlParameter("@Enabled", Enabled) });
            return((int)_pRVAL.Value);
        }
Пример #4
0
        /// <summary>
        /// Adds an Event - EventID, Name , Description - To the database
        /// </summary>
        /// <param name="ticketEvent"></param>
        public void EventsAdd(TicketEvent ticketEvent)
        {
            var output  = JsonConvert.SerializeObject(ticketEvent);
            var client  = new RestClient(localhost);
            var request = new RestRequest("TicketEvents", Method.POST);

            request.AddParameter("application/json", output, ParameterType.RequestBody);
            var response = client.Execute <TicketEvent>(request);
        }
Пример #5
0
 public TicketEvent EventsUpdate(int id, TicketEvent ticketEvent)
 {
     using (var connection = new SqlConnection(connectionString))
     {
         connection.Open();
         connection.Query("UPDATE TicketEvents SET EventName = @eventName, " + " EventHtmlDescription = @description " + "WHERE TicketEventID = @ID", new { eventName = ticketEvent.EventName, description = ticketEvent.EventHtmlDescription, ID = id });
         var addedEventQuery = connection.Query <int>("SELECT IDENT_CURRENT ('TicketEvents') AS Current_Identity").First();
         return(connection.Query <TicketEvent>("SELECT * FROM TicketEvents WHERE TicketEventID=@Id", new { Id = id }).First());
     }
 }
Пример #6
0
        //string connectionString = ConfigurationManager.ConnectionStrings["TicketSystem"].ConnectionString;

        ///Backoffice adding event
        public TicketEvent EventAdd(TicketEvent ticketEvent)
        {
            using (var connection = new SqlConnection(connectionString))
            {
                connection.Open();
                connection.Query("insert into TicketEvents(EventName, EventHtmlDescription) values(@Name, @Description)", new { Name = ticketEvent.EventName, description = ticketEvent.EventHtmlDescription });
                var addedEventQuery = connection.Query <int>("SELECT IDENT_CURRENT ('TicketEvents') AS Current_Identity").First();
                return(connection.Query <TicketEvent>("SELECT * FROM TicketEvents WHERE TicketEventID=@Id", new { Id = addedEventQuery }).First());
            }
        }
        public void EventsAdd(TicketEvent newEvent)
        {
            //var output = JsonConvert.SerializeObject(newVenue);
            var client  = new RestClient("http://localhost:54874");
            var request = new RestRequest("api/Event", Method.POST);

            request.AddJsonBody(newEvent);
            //request.AddParameter("venue", output, ParameterType.RequestBody);
            client.Execute(request);
        }
Пример #8
0
        /// <summary>
        /// Updates chosen properties to an existing Event, based on input EventID.
        /// </summary>
        /// <param name="id">EventID</param>
        /// <param name="ticketEvent">Properties in Class TicketEvent</param>

        public void EventsUpdate(int id, TicketEvent ticketEvent)
        {
            var output  = JsonConvert.SerializeObject(ticketEvent);
            var client  = new RestClient(localhost);
            var request = new RestRequest("TicketEvents/{id}", Method.PUT);

            request.AddUrlSegment("id", id);
            request.AddParameter("application/json", output, ParameterType.RequestBody);
            var response = client.Execute <TicketEvent>(request);
        }
Пример #9
0
 public TicketEvent EventsAdd(TicketEvent ticketEvent)
 {
     using (var connection = new SqlConnection(connectionString))
     {
         string queryString = "INSERT INTO TicketEvents(EventName, EventHtmlDescription) VALUES(@Name, @Description)";
         connection.Open();
         connection.Query(queryString, new { Name = ticketEvent.EventName, Description = ticketEvent.EventHtmlDescription });
         var addedEventQuery = connection.Query <int>("SELECT IDENT_CURRENT ('TicketEvents') AS Current_Identity").First();
         return(connection.Query <TicketEvent>("SELECT * FROM TicketEvents WHERE TicketEventID=@Id", new { Id = addedEventQuery }).First());
     }
 }
Пример #10
0
 public void Put(int id, [FromBody] TicketEvent ticketEvent)
 {
     if (ticketDb.FindEventByID(id) == null)
     {
         Response.StatusCode = 404;
         return;
     }
     else
     {
         ticketDb.UpdateEvent(id, ticketEvent.EventName, ticketEvent.EventHtmlDescription, ticketEvent.TicketEventPrice);
     }
 }
Пример #11
0
        public async Task <TicketEventStats> GetEventStats(string eventId)
        {
            var error   = "";
            var handler = HandlersFactory.GetProfilerHandler(_settingService, _loggerService);

            handler.Start(LOG_TAG, "GetEventStats", null);

            try
            {
                if (this._docDbClient == null)
                {
                    return(new TicketEventStats());
                }

                TicketEvent tEvent = await GetEventById(eventId);

                if (tEvent == null)
                {
                    return(new TicketEventStats());
                }

                FeedOptions queryOptions = new FeedOptions {
                    MaxItemCount = -1
                };

                IQueryable <TicketOrder> ordersQuery = this._docDbClient.CreateDocumentQuery <TicketOrder>(
                    UriFactory.CreateDocumentCollectionUri(_databaseName, _ordersCollectionName), queryOptions).
                                                       Where(o => o.EventId.ToLower() == eventId.ToLower());

                var orders         = ordersQuery.ToList();
                var requestedCount = orders.Sum(o => o.Tickets);
                var failedCount    = orders.Where(o => o.IsFulfilled == false && o.IsCancelled == false).Sum(o => o.Tickets);
                var canxCount      = orders.Where(o => o.IsFulfilled == false && o.IsCancelled == true).Sum(o => o.Tickets);
                return(new TicketEventStats()
                {
                    Tickets = tEvent.TotalTickets,
                    RequestedTickets = requestedCount,
                    FailedTickets = failedCount,
                    CancelledTickets = canxCount,
                    Orders = orders.Count
                });
            }
            catch (Exception ex)
            {
                error = ex.Message;
                throw new Exception(error);
            }
            finally
            {
                handler.Stop(error);
            }
        }
        public IActionResult CreatEvent()
        {
            TicketEvent ticketevent = new TicketEvent();

            if (User.Identity.IsAuthenticated)
            {
                return(View(ticketevent));
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }
        }
Пример #13
0
 public TicketEvent CreateTicketEvent([FromBody] TicketEvent ticketEvent)
 {
     if (ModelState.IsValid)
     {
         Response.StatusCode = 200;
         return(ticketDb.EventAdd(ticketEvent.EventName, ticketEvent.EventHtmlDescription, ticketEvent.TicketEventPrice));
     }
     else
     {
         Response.StatusCode = 400;
         return(null);
     }
 }
Пример #14
0
 // Add
 /// <summary>
 /// Method that saves input to a ticketEventobject and saves it in SQL.
 /// </summary>
 /// <param name="ticketEvent"></param>
 /// <returns>Returns an updates Eventlist.</returns>
 public IActionResult AddEvents(TicketEvent ticketEvent)
 {
     if (ticketEvent.EventName != null)
     {
         ticketApi.EventsAdd(ticketEvent);
         value.Events = ticketApi.GetAllEvents();
         return(View(value));
     }
     else
     {
         ViewBag.StatusMessage = "";
         return(View(value));
     }
 }
Пример #15
0
 // Edit
 /// <summary>
 /// Method that updates the existing event in the database, with new inputstring. The updates list is the returned to the view.
 /// </summary>
 /// <param name="id"></param>
 /// <param name="ticketEvent"></param>
 /// <returns>Returns an updated eventlist.</returns>
 public IActionResult EditEvents(int id, TicketEvent ticketEvent)
 {
     if (id == 0)
     {
         value.Events = ticketApi.GetAllEvents();
         return(View(value));
     }
     else
     {
         ticketApi.EventsUpdate(id, ticketEvent);
         value.Events = ticketApi.GetAllEvents();
         return(View(value));
     }
 }
        public Ticket TicketEventGet(TicketEvent ticketEvent)
        {
            var output = JsonConvert.SerializeObject(ticketEvent);

            var client  = new RestClient(connectionStringAPI);
            var request = new RestRequest("Event/{id}", Method.GET);

            request.AddParameter("application/json", output, ParameterType.RequestBody);
            var response = client.Execute <Ticket>(request);

            if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
            {
                throw new KeyNotFoundException(string.Format("Event not found", ticketEvent));
            }
            return(response.Data);
        }
Пример #17
0
        public static int RaiseNotificationEvent(Guid OrgID, int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt, int ScheduledTicketId, DateTime RunTime, FileItem[] tktFiles)
        {
            XmlSerializer _serializer  = new XmlSerializer(typeof(Ticket));
            string        _objStateNew = string.Empty;

            if (tkt != null)
            {
                TextWriter _stream = new StringWriter();
                _serializer.Serialize(_stream, tkt);
                _objStateNew = _stream.ToString();
                _stream.Close();
            }
            string _objStateOld = string.Empty;

            if (oldTkt != null)
            {
                TextWriter _stream = new StringWriter();
                _serializer.Serialize(_stream, oldTkt);
                _objStateOld = _stream.ToString();
                _stream.Close();
            }
            return(NotificationEventsQueue.InsertEvent(OrgID, DeptID, UserId, tktEvent, _objStateNew, _objStateOld, tktFiles, ScheduledTicketId, RunTime));
        }
Пример #18
0
 public static SendToState SelectSendToUserState(int DeptID, int TktID, int ToUserId, TicketEvent TktEvent)
 {
     SqlParameter _pState = new SqlParameter("@State", SqlDbType.TinyInt);
     _pState.Direction = ParameterDirection.Output;
     UpdateData("sp_SelectNotificationRuleState", new SqlParameter[] { new SqlParameter("@DId", DeptID), new SqlParameter("@TicketId", TktID), new SqlParameter("@ToUserId", ToUserId), new SqlParameter("@TktEvent", (byte)TktEvent), _pState });
     return (SendToState)(byte)_pState.Value;
 }
Пример #19
0
 public static int UpdateEvent(int DeptID, int NotificationRuleId, TicketEvent NotificationEvent, bool Enabled)
 {
     SqlParameter _pRVAL = new SqlParameter("@RETURN_VALUE", SqlDbType.Int);
     _pRVAL.Direction = ParameterDirection.ReturnValue;
     UpdateData("sp_UpdateNotificationRuleEvent", new SqlParameter[] { _pRVAL, new SqlParameter("@DId", DeptID), new SqlParameter("@NotificationRuleId", NotificationRuleId), new SqlParameter("@EventType", (byte)NotificationEvent), new SqlParameter("@Enabled", Enabled) });
     return (int)_pRVAL.Value;
 }
Пример #20
0
        public static void SetupDemoData(TicketDeskContext context)
        {
            RemoveAllData(context);
            context.SaveChanges();



            context.Tickets.AddOrUpdate(t => t.Title,
                                        new Ticket
            {
                Title              = "Test Unassigned Ticket",
                AffectsCustomer    = false,
                Category           = "Hardware",
                CreatedBy          = "17f78f38-fa68-445f-90de-38896140db28",
                TicketStatus       = TicketStatus.Active,
                CurrentStatusDate  = DateTimeOffset.Now,
                CurrentStatusSetBy = "72bdddfb-805a-4883-94b9-aa494f5f52dc",
                Details            =
                    "Lorem ipsum dolor sit amet, consectetur adipiscing elit fusce vel sapien elit in malesuada semper mi, id sollicitudin urna fermentum ut fusce varius nisl ac ipsum gravida vel pretium tellus.",
                IsHtml         = false,
                LastUpdateBy   = "72bdddfb-805a-4883-94b9-aa494f5f52dc",
                LastUpdateDate = DateTimeOffset.Now,
                Owner          = "17f78f38-fa68-445f-90de-38896140db28",
                Priority       = "Low",
                TagList        = "test,moretest",
                TicketType     = "Problem",
                TicketEvents   = new[] { TicketEvent.CreateActivityEvent("17f78f38-fa68-445f-90de-38896140db28", TicketActivity.Create, null, null, null) }
            });

            var titles = new[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1", "I1", "J1", "K1", "L1", "M1", "N1", "O1", "P1", "Q1", "R1" };
            var n      = 0;

            foreach (var p in titles)
            {
                n--;
                string cc;
                string tt;
                string oo;
                if (Math.Abs(n) % 2 == 0)
                {
                    tt = "Question";
                    cc = "Hardware";
                    oo = "64165817-9cb5-472f-8bfb-6a35ca54be6a";
                }
                else
                {
                    tt = "Problem";
                    cc = "Software";
                    oo = "17f78f38-fa68-445f-90de-38896140db28";
                }


                var now = DateTimeOffset.Now.AddDays(n);
                context.Tickets.AddOrUpdate(t => t.Title,
                                            new Ticket
                {
                    Title              = "Test Ticket " + p,
                    AffectsCustomer    = false,
                    AssignedTo         = "64165817-9cb5-472f-8bfb-6a35ca54be6a",
                    Category           = cc,
                    CreatedBy          = oo,
                    TicketStatus       = (p == "L") ? TicketStatus.Closed : TicketStatus.Active,
                    CurrentStatusDate  = now,
                    CurrentStatusSetBy = "72bdddfb-805a-4883-94b9-aa494f5f52dc",
                    Details            =
                        "Lorem ipsum dolor sit amet, consectetur adipiscing elit fusce vel sapien elit in malesuada semper mi, id sollicitudin urna fermentum ut fusce varius nisl ac ipsum gravida vel pretium tellus.",
                    IsHtml         = false,
                    LastUpdateBy   = "72bdddfb-805a-4883-94b9-aa494f5f52dc",
                    LastUpdateDate = now.AddHours(2),
                    Owner          = oo,
                    Priority       = "Low",
                    TagList        = "test,moretest",
                    TicketType     = tt,
                    TicketEvents   = new[] { TicketEvent.CreateActivityEvent(oo, TicketActivity.Create, null, null, null) }
                });
            }
            context.SaveChanges();
        }
Пример #21
0
        public static HtmlString HtmlComment(this TicketEvent ticketEvent)
        {
            var content = (ticketEvent.IsHtml) ? ticketEvent.Comment : ticketEvent.Comment.HtmlFromMarkdown();

            return(new HtmlString(HtmlUtilities.Safe(content)));
        }
Пример #22
0
 public bool IsTicketEventEnabled(TicketEvent tevent)
 {
     return m_TicketEvents[(int)tevent];
 }
Пример #23
0
 public static int RaiseNotificationEvent(int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt)
 {
     return RaiseNotificationEvent(Guid.Empty, DeptID, UserId, tktEvent, tkt, oldTkt, 0, DateTime.MinValue, null);
 }
Пример #24
0
 public static int RaiseNotificationEvent(int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt)
 {
     return(RaiseNotificationEvent(Guid.Empty, DeptID, UserId, tktEvent, tkt, oldTkt, 0, DateTime.MinValue, null));
 }
Пример #25
0
 public static int RaiseNotificationEvent(Guid OrgID, int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt, int ScheduledTicketId, DateTime RunTime, FileItem[] tktFiles)
 {
     XmlSerializer _serializer = new XmlSerializer(typeof(Ticket));
     string _objStateNew = string.Empty;
     if (tkt != null)
     {
         TextWriter _stream = new StringWriter();
         _serializer.Serialize(_stream, tkt);
         _objStateNew = _stream.ToString();
         _stream.Close();
     }
     string _objStateOld = string.Empty;
     if (oldTkt != null)
     {
         TextWriter _stream = new StringWriter();
         _serializer.Serialize(_stream, oldTkt);
         _objStateOld = _stream.ToString();
         _stream.Close();
     }
     return NotificationEventsQueue.InsertEvent(OrgID, DeptID, UserId, tktEvent, _objStateNew, _objStateOld, tktFiles, ScheduledTicketId, RunTime);
 }
Пример #26
0
 public void Post([FromBody] TicketEvent ticketEvent)
 {
     ticketDB.EventAdd(ticketEvent);
 }
Пример #27
0
 public void SetTicketEventState(TicketEvent tevent, bool IsEnabled)
 {
     m_TicketEvents[(int)tevent] = IsEnabled;
 }
Пример #28
0
 public bool IsTicketEventEnabled(TicketEvent tevent)
 {
     return(m_TicketEvents[(int)tevent]);
 }
Пример #29
0
 public static int RaiseNotificationEvent(int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt, FileItem[] tktFiles)
 {
     return(RaiseNotificationEvent(Guid.Empty, DeptID, UserId, tktEvent, tkt, oldTkt, tktFiles));
 }
Пример #30
0
 public void SetTicketEventState(TicketEvent tevent, bool IsEnabled)
 {
     m_TicketEvents[(int)tevent] = IsEnabled;
 }
Пример #31
0
 public static int RaiseNotificationEvent(Guid OrgId, int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt, FileItem[] tktFiles)
 {
     return(RaiseNotificationEvent(OrgId, DeptID, UserId, tktEvent, tkt, oldTkt, 0, DateTime.MinValue, tktFiles));
 }
Пример #32
0
 public static int RaiseNotificationEvent(Guid OrgId, int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt, FileItem[] tktFiles)
 {
     return RaiseNotificationEvent(OrgId, DeptID, UserId, tktEvent, tkt, oldTkt, 0, DateTime.MinValue, tktFiles);
 }
 public void Post([FromBody] TicketEvent value)
 {
     Event.EventAdd(value.EventName, value.EventHtmlDescription);
 }
Пример #34
0
 public static int RaiseNotificationEvent(int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt, FileItem[] tktFiles)
 {
     return RaiseNotificationEvent(Guid.Empty, DeptID, UserId, tktEvent, tkt, oldTkt, tktFiles);
 }
 public void Put(int id, [FromBody] TicketEvent a)
 {
     Event.EventUpdate(a);
 }
Пример #36
0
 public static UserDisplayInfo GetEventByInfo(this TicketEvent ticketEvent)
 {
     return(UserDisplayInfo.GetUserInfo(ticketEvent.EventBy));
 }
Пример #37
0
 public static int RaiseNotificationEvent(Guid OrgId, int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt)
 {
     return RaiseNotificationEvent(OrgId, DeptID, UserId, tktEvent, tkt, null, 0, DateTime.MinValue, null);
 }
Пример #38
0
        public async Task ProcessOrder(TicketOrder order)
        {
            var error   = "";
            var handler = HandlersFactory.GetProfilerHandler(SettingService, LoggerService);

            handler.Start(LOG_TAG, "ProcessOrder", GetActorProperties());

            try
            {
                if (order == null)
                {
                    handler.Info("Process order is null");
                    return;
                }

                var state = await this.StateManager.GetStateAsync <TicketOrder>(ActorStatePropertyName);

                state = order;

                // Validate the order
                bool isValid = true;
                try
                {
                    TicketOrder.Validate(state);
                }
                catch (Exception e)
                {
                    state.Note = e.Message;
                    isValid    = false;
                }

                if (isValid)
                {
                    // Validate the event
                    TicketEvent tEvent = await this.DataStoreService.GetEventById(order.EventId);

                    if (tEvent == null)
                    {
                        state.FulfillDate = null;
                        state.IsFulfilled = false;
                        state.Note        = "The Event ID is not valid!";
                        //TODO: Exercise 6 - Task 1
                        //state.Status = OrderStatuses.Invalid;
                    }
                    else
                    {
                        state.PricePerTicket = tEvent.PricePerTicket;
                        state.Currency       = tEvent.Currency;
                        state.Price          = state.Tickets * state.PricePerTicket;

                        // Locate the event actor
                        IEventActor eventActor  = this.ActorLocationService.Create <IEventActor>(new ActorId(order.EventId), Constants.ContosoEventsApplicationName);
                        bool        isAvailable = await eventActor.ReserveTickets(order);

                        if (isAvailable || !SettingService.IsTicketAvailabilityCheck())
                        {
                            // Charge credit card
                            string confirmationNumber = await this.PaymentProcessorService.Authorize(order);

                            if (!string.IsNullOrEmpty(confirmationNumber))
                            {
                                state.PaymentProcessorConfirmation = confirmationNumber;
                                state.FulfillDate = DateTime.Now;
                                state.IsFulfilled = true;
                                //TODO: Exercise 6 - Task 1
                                //state.Status = OrderStatuses.Fufilled;
                            }
                            else
                            {
                                state.FulfillDate = null;
                                state.IsFulfilled = false;
                                state.Note        = "Credit card failed to authorize!";
                                await eventActor.FailTickets(order);

                                //TODO: Exercise 6 - Task 1
                                //state.Status = OrderStatuses.CreditCardDenied;
                            }
                        }
                        else
                        {
                            state.FulfillDate = null;
                            state.IsFulfilled = false;
                            state.Note        = "Event Tickets are exhausted!";
                            //TODO: Exercise 6 - Task 1
                            //state.Status = OrderStatuses.TicketsExhausted;
                        }
                    }
                }
                else
                {
                    state.FulfillDate = null;
                    state.IsFulfilled = false;
                    //TODO: Exercise 6 - Task 1
                    //state.Status = OrderStatuses.Invalid;
                }

                // Make sure the state is saved
                await SetEntityStateAsync(state);

                // Externalize the state
                await this.ExternalizationService.Externalize(state);

                // Notify the user
                await this.NotificationService.Notify(state);
            }
            catch (Exception ex)
            {
                error = ex.Message;
            }
            finally
            {
                handler.Stop(error);
                if (!string.IsNullOrEmpty(error))
                {
                    this.HealthReporterService.SendReportForService(HealthState.Error, GetHealthErrorMessage("ProcessOrder", error));
                }
            }
        }
Пример #39
0
        public static SendToState SelectSendToUserState(int DeptID, int TktID, int ToUserId, TicketEvent TktEvent)
        {
            SqlParameter _pState = new SqlParameter("@State", SqlDbType.TinyInt);

            _pState.Direction = ParameterDirection.Output;
            UpdateData("sp_SelectNotificationRuleState", new SqlParameter[] { new SqlParameter("@DId", DeptID), new SqlParameter("@TicketId", TktID), new SqlParameter("@ToUserId", ToUserId), new SqlParameter("@TktEvent", (byte)TktEvent), _pState });
            return((SendToState)(byte)_pState.Value);
        }