public EventActorState(TicketEvent ev)
 {
     Tickets          = ev.TotalTickets;
     RequestedTickets = 0;
     FailedTickets    = 0;
     CancelledTickets = 0;
     Orders           = new List <TicketOrder>();
 }
Example #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 });
     }
 }
Example #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);
        }
Example #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);
        }
Example #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());
     }
 }
Example #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);
        }
Example #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);
        }
Example #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());
     }
 }
Example #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);
     }
 }
Example #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"));
            }
        }
Example #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);
     }
 }
 // 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));
     }
 }
 // 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);
        }
Example #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));
        }
Example #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;
 }
Example #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;
 }
Example #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();
        }
Example #21
0
        public static HtmlString HtmlComment(this TicketEvent ticketEvent)
        {
            var content = (ticketEvent.IsHtml) ? ticketEvent.Comment : ticketEvent.Comment.HtmlFromMarkdown();

            return(new HtmlString(HtmlUtilities.Safe(content)));
        }
Example #22
0
 public bool IsTicketEventEnabled(TicketEvent tevent)
 {
     return m_TicketEvents[(int)tevent];
 }
Example #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);
 }
Example #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));
 }
Example #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);
 }
Example #26
0
 public void Post([FromBody] TicketEvent ticketEvent)
 {
     ticketDB.EventAdd(ticketEvent);
 }
Example #27
0
 public void SetTicketEventState(TicketEvent tevent, bool IsEnabled)
 {
     m_TicketEvents[(int)tevent] = IsEnabled;
 }
Example #28
0
 public bool IsTicketEventEnabled(TicketEvent tevent)
 {
     return(m_TicketEvents[(int)tevent]);
 }
Example #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));
 }
Example #30
0
 public void SetTicketEventState(TicketEvent tevent, bool IsEnabled)
 {
     m_TicketEvents[(int)tevent] = IsEnabled;
 }
Example #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));
 }
Example #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);
 }
Example #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);
 }
Example #36
0
 public static UserDisplayInfo GetEventByInfo(this TicketEvent ticketEvent)
 {
     return(UserDisplayInfo.GetUserInfo(ticketEvent.EventBy));
 }
Example #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);
 }
        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));
                }
            }
        }
Example #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);
        }