Пример #1
0
        public static int Create(string Name, string IdentifierMask, bool IsDefault, int Index)
        {
            if (!CanModify())
            {
                throw new AccessDeniedException();
            }


            try
            {
                IncidentBoxRow row = new IncidentBoxRow();

                row.Name           = Name;
                row.IdentifierMask = IdentifierMask;
                row.IsDefault      = IsDefault;
                row.Index          = Index;

                row.Update();

                // Create Default IncidentBoxDocument
                IncidentBoxDocument doc = IncidentBoxDocument.Load(row.PrimaryKeyId);

                doc.GeneralBlock.Manager     = Security.CurrentUser.UserID;
                doc.GeneralBlock.Responsible = Security.CurrentUser.UserID;

                IncidentBoxDocument.Save(doc);

                return(row.PrimaryKeyId);
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                if (ex.Message.IndexOf("'IX_IncidentBox_1'") != -1)
                {
                    throw new IncidentBoxDuplicateIdentifierMaskException();
                }
                else if (ex.Message.IndexOf("'IX_IncidentBox'") != -1)
                {
                    throw new IncidentBoxDuplicateNameException();
                }
                else
                {
                    throw;
                }
            }
        }
Пример #2
0
        public static void Save(IncidentBoxDocument document)
        {
            using (DbTransaction tran = DbTransaction.Begin())
            {
                IncidentBoxRow row = IncidentBoxRow.Load(document.OwnerIncidentBoxId);

                IncidentBoxDocument prevDocument = IncidentBoxDocument.Load(document.OwnerIncidentBoxId, row.Document);

                row.Document = document.GetDocumentString();

                row.ManagerId = document.GeneralBlock.Manager;

                if (document.GeneralBlock.AllowControl)
                {
                    if (document.GeneralBlock.ControllerAssignType == ControllerAssignType.CustomUser)
                    {
                        row.ControllerId = document.GeneralBlock.Controller;
                    }

                    if (document.GeneralBlock.ControllerAssignType == ControllerAssignType.Manager)
                    {
                        row.ControllerId = document.GeneralBlock.Manager;
                    }

                    if (document.GeneralBlock.ControllerAssignType == ControllerAssignType.Creator)
                    {
                        row.ControllerId = 0;
                    }
                }
                else
                {
                    row.ControllerId = -1;
                }

                row.CalendarId           = document.GeneralBlock.CalendarId;
                row.ExpectedDuration     = document.GeneralBlock.ExpectedDuration;
                row.ExpectedResponseTime = document.GeneralBlock.ExpectedResponseTime;
                row.ExpectedAssignTime   = document.GeneralBlock.ExpectedAssignTime;
                row.TaskTime             = document.GeneralBlock.TaskTime;

                row.Update();

                // Find Real Update
                if (prevDocument.GeneralBlock.AllowControl && !document.GeneralBlock.AllowControl)
                {
                    // Turn OffControling
                    Incident.RaiseTurnOffControling(document.OwnerIncidentBoxId);
                }
                else if (document.GeneralBlock.AllowControl)
                {
                    if (prevDocument.GeneralBlock.Manager != document.GeneralBlock.Manager &&
                        document.GeneralBlock.ControllerAssignType == ControllerAssignType.Manager)
                    {
                        Incident.RaiseChangeController(document.OwnerIncidentBoxId,
                                                       prevDocument.GeneralBlock.Manager,
                                                       document.GeneralBlock.Manager);
                    }
                    else if (document.GeneralBlock.ControllerAssignType == ControllerAssignType.CustomUser &&
                             prevDocument.GeneralBlock.Controller != document.GeneralBlock.Controller)
                    {
                        Incident.RaiseChangeController(document.OwnerIncidentBoxId,
                                                       prevDocument.GeneralBlock.Controller,
                                                       document.GeneralBlock.Controller);
                    }
                }

                if (prevDocument.GeneralBlock.Manager != document.GeneralBlock.Manager)
                {
                    Incident.RaiseChangeManager(document.OwnerIncidentBoxId, prevDocument.GeneralBlock.Manager, document.GeneralBlock.Manager);
                }
                tran.Commit();
            }
        }