コード例 #1
0
        public ActionResult SaveTicket(IntakeFormModel model)
        {
            AddIncidentRequest req = new AddIncidentRequest();

            string sum;
            string desc;

            if (model !=null)
            {
                if (Request.Params[11] == "Cancel")
                {
                    //clear screen
                    return RedirectToAction("Index");
                }

                //Write last selected in cookie
                WriteCoockie("ServiceDeskName", model.ServiceDesk_AutoComplete);
                //WriteCoockie("LastRequestType", model.VerzoekType.ToString());

                if (model.VerzoekType == 1)
                {
                    //Terugbelverzoek
                    try {
                        Incident ticket = CreateTicket(model.ServiceDesk_AutoComplete);
                        desc = string.Format("Dhr/mevr {0} van {1} heeft gebeld met het verzoek om teruggebeld te worden op {2}.<br />Bericht:<br />{3}", model.ContactName, model.Compagny_AutoComplete, model.ContactPhone, model.Message);
                        sum = string.Format("Dhr/mevr {0} heeft gebeld met het verzoek om teruggebeld te worden.", model.ContactName);
                        ticket.Description = desc;
                        ticket.Organization = model.Compagny;
                        ticket.OrganizationName = model.Compagny_AutoComplete;
                        ticket.Summary = sum;
                        SDWS.AddIncidentRequest newTicket = new AddIncidentRequest();
                        newTicket.AddSDIncident = ticket;
                        SDWS.AddIncidentResponse responce1 = sDesk.ProcessRequest(newTicket);
                        if (responce1.ErrorMessage.Length > 0)
                        {
                            MessageTitle = "Fout bij het aanmaken van het terugbel verzoek!!";
                            MessageSucces = false;
                            MessageDisplay = responce1.ErrorMessage;
                        }
                        else
                        {
                            MessageTitle = "Terugbel verzoek aangemaakt";
                            MessageDisplay = string.Format("Voor {0} is er een terugbelverzoek aangemaakt onder ticket {1}.", model.ContactName, responce1.AddSDIncidentResponse.IncidentNumber);
                        }
                    } catch (Exception e)
                    {
                        MessageTitle = "Fout bij het aanmaken van het terugbel verzoek!!";
                        MessageSucces = false;
                        MessageDisplay = e.Message;
                    }
                }
                else if (model.VerzoekType == 2)
                {
                    //Terugbelverzoek inzake bestaande ticket
                    try
                    {
                        SDWS.GetIncidentReq r = new GetIncidentReq();
                        SDWS.GetIncidentRequest filter = new GetIncidentRequest();
                        SDWS.Note n = NewNote();
                        List<SDWS.Note> NotesList = new List<Note>();

                        filter.IncidentNumber = model.Ticket;
                        r.IncidentRequest = filter;

                        var responce = sDesk.ProcessRequest(r);
                        var updated = responce.IncidentResponse;
                        updated.LastEditDateTime = DateTime.Now;
                        updated.LastEditDateTimeSpecified = true;
                        if (updated.Notes != null)
                        {
                            foreach (var note in updated.Notes)
                            {
                                NotesList.Add(note);
                            }
                        }
                        n.Text = string.Format("Dhr/mevr {0} van {1} heeft gebeld met het verzoek om teruggebeld te worden op {2}.<br />Bericht:<br />{3}", model.ContactName, model.Compagny_AutoComplete, model.ContactPhone, model.Message);
                        NotesList.Add(n);
                        updated.Notes = NotesList.ToArray();

                        SDWS.UpdateIncidentRequest update = new UpdateIncidentRequest();
                        update.UpdateSDIncident = updated;

                        SDWS.UpdateIncidentResponse responce2 = sDesk.ProcessRequest(update);
                        if (responce2.ErrorMessage.Length > 0)
                        {
                            MessageTitle = "Fout bij het aanmaken van het terugbel verzoek!!";
                            MessageSucces = false;
                            MessageDisplay = responce2.ErrorMessage;
                        }
                        else
                        {
                            MessageTitle = string.Format("Terugbel verzoek voor ticket {0} aangemaakt", updated.IncidentNumber);
                            MessageDisplay = string.Format("Voor {0} is er een terugbelverzoek aangemaakt onder ticket {1}.", model.ContactName, updated.IncidentNumber);
                        }
                    } catch (Exception e)
                    {
                        MessageTitle = "Fout bij het aanmaken van het terugbel verzoek!!";
                        MessageSucces = false;
                        MessageDisplay = e.Message;
                    }
                }
                else if (model.VerzoekType==3)
                {
                    //Nieuwe incident
                    try
                    {
                        Incident ticket = CreateTicket(model.ServiceDesk_AutoComplete);
                        sum = string.Format("Ticket aangemaakt voor {0} van {1}", model.ContactName, model.Compagny_AutoComplete);
                        desc = string.Format("{0} heeft het volgende gemeld.<br />Omschrijving:<br />{1}<br /><br />{0} is bereikbaar op {2}"
                            , model.ContactName, model.Message, model.ContactPhone);
                        ticket.Description = desc;
                        ticket.Organization = model.Compagny;
                        ticket.OrganizationName = model.Compagny_AutoComplete;
                        ticket.Summary = sum;

                        SDWS.AddIncidentRequest newTicket = new AddIncidentRequest();
                        newTicket.AddSDIncident = ticket;
                        SDWS.AddIncidentResponse responce3 = sDesk.ProcessRequest(newTicket);
                        if (responce3.ErrorMessage.Length > 0)
                        {
                            MessageTitle = "Fout bij het aanmaken van een nieuw ticket!!";
                            MessageSucces = false;
                            MessageDisplay = responce3.ErrorMessage;
                        }
                        else
                        {
                            MessageTitle = string.Format("Ticket {0} aangemaakt",responce3.AddSDIncidentResponse.IncidentNumber);
                            MessageDisplay = string.Format("Voor {0} is er een nieuw verzoek aangemaakt onder ticket {1}.", model.ContactName, responce3.AddSDIncidentResponse.IncidentNumber);
                        }
                    } catch (Exception e)
                    {
                        MessageTitle = "Fout bij het aanmaken van een nieuw ticket!!";
                        MessageSucces = false;
                        MessageDisplay = e.Message;
                    }
                }
                else
                {
                    //Update van bestaande ticket
                    try
                    {
                        SDWS.GetIncidentReq r = new GetIncidentReq();
                        SDWS.GetIncidentRequest filter = new GetIncidentRequest();
                        SDWS.Note n = NewNote();
                        List<SDWS.Note> NotesList = new List<Note>();

                        filter.IncidentNumber = model.Ticket;
                        r.IncidentRequest = filter;
                        r.IncidentRequest.IncludeNotes = true;

                        var responce = sDesk.ProcessRequest(r);

                        var updated = responce.IncidentResponse;
                        updated.LastEditDateTime = DateTime.Now;
                        updated.LastEditDateTimeSpecified = true;
                        if (updated.Notes != null)
                        {
                            foreach (var note in updated.Notes)
                            {
                                NotesList.Add(note);
                            }
                        }
                        n.Text = string.Format("Dhr/mevr {0} van {1} heeft een aanvulling gedaan op ticket {2}.<br />Bericht:<br />{3}<br /><br />{0} is bereikbaar op {4}.", model.ContactName, model.Compagny_AutoComplete, responce.IncidentResponse.IncidentNumber, model.ContactPhone, model.Message);
                        NotesList.Add(n);
                        updated.Notes = NotesList.ToArray();

                        SDWS.UpdateIncidentRequest update = new UpdateIncidentRequest();
                        update.UpdateSDIncident = updated;

                        SDWS.UpdateIncidentResponse responce2 = sDesk.ProcessRequest(update);
                        if (responce2.ErrorMessage.Length > 0)
                        {
                            MessageTitle = string.Format("Fout bij het het aanvullen van ticket {0}!!",model.Ticket);
                            MessageSucces = false;
                            MessageDisplay = responce2.ErrorMessage;
                        }
                        else
                        {
                            MessageTitle = string.Format("Ticket {0} aangevuld", model.Ticket);
                            MessageDisplay = string.Format("Voor {0} is er een terugbelverzoek aangemaakt onder ticket {1}.", model.ContactName, responce.IncidentResponse.IncidentNumber);
                        }
                    }
                    catch (Exception e)
                    {
                        MessageTitle = string.Format("Fout bij het het aanvullen van ticket {0}!!", model.Ticket_AutoComplete);
                        MessageSucces = false;
                        MessageDisplay = e.Message;
                    }
                }
            }

            return RedirectToAction("Index");
        }
コード例 #2
0
ファイル: Reference.cs プロジェクト: ArfiSoft/MSoHelpDesk
 /// <remarks/>
 public void QueueAddIncidentAsync(AddIncidentRequest req) {
     this.QueueAddIncidentAsync(req, null);
 }
コード例 #3
0
ファイル: Reference.cs プロジェクト: ArfiSoft/MSoHelpDesk
 /// <remarks/>
 public void QueueAddIncidentAsync(AddIncidentRequest req, object userState) {
     if ((this.QueueAddIncidentOperationCompleted == null)) {
         this.QueueAddIncidentOperationCompleted = new System.Threading.SendOrPostCallback(this.OnQueueAddIncidentOperationCompleted);
     }
     this.InvokeAsync("QueueAddIncident", new object[] {
                 req}, this.QueueAddIncidentOperationCompleted, userState);
 }
コード例 #4
0
ファイル: Reference.cs プロジェクト: ArfiSoft/MSoHelpDesk
 public QueueAddIncidentResponse QueueAddIncident(AddIncidentRequest req) {
     object[] results = this.Invoke("QueueAddIncident", new object[] {
                 req});
     return ((QueueAddIncidentResponse)(results[0]));
 }