Пример #1
0
        /// <inheritdoc />
        public bool Rename(DbRef reference, string newName)
        {
            if (string.IsNullOrWhiteSpace(newName))
            {
                return(false);
            }

            var cts          = new CancellationTokenSource(5000);                     // 5 seconds
            var getAsyncTask = ObjectBase.GetAsync(this.redis, reference, cts.Token); // 5 seconds

            if (!getAsyncTask.Wait(5000))
            {
                return(false);
            }

            var target = getAsyncTask.Result;

            if (target == null)
            {
                return(false);
            }

            if (!target.Owner.Equals(this.caller.DbRef))
            {
                return(false);
            }

            target.Name = newName;
            var saveAsyncTask = target.SaveAsync(this.redis, cts.Token);

            if (!saveAsyncTask.Wait(5000))
            {
                return(false);
            }

            return(true);
        }
Пример #2
0
        private static object GetDefaultValue(EntityField field)
        {
            if (field.Type == typeof(IDbRef))
            {
                return(DbRef.CreateInstance(field.DbRefTable, Guid.Empty));
            }

            if (field.AllowNull)
            {
                return(null);
            }

            if (field.Type.IsValueType)
            {
                return(Activator.CreateInstance(field.Type));
            }

            if (field.Type == typeof(string))
            {
                return(string.Empty);
            }

            throw new Exception("Unknown type: " + field.Type);
        }
Пример #3
0
        internal void TopInfo_RightButton_OnClick(object sender, EventArgs e)
        {
            var name     = ((EditText)Variables["NameEditText"]).Text;
            var surname  = ((EditText)Variables["SurnameEditText"]).Text;
            var position = ((EditText)Variables["PositionEditText"]).Text;
            var phone    = ((EditText)Variables["PhoneEditText"]).Text;
            var email    = ((EditText)Variables["EMailEditText"]).Text;

            // TODO: Разбраться с Code
            if (string.IsNullOrWhiteSpace(name))
            {
                Dialog.Message(Translator.Translate("forgot_name"));
                return;
            }

            Contact.Description = $"{name} {surname}";
            Contact.Position    = position;
            Contact.Tel         = phone;
            Contact.EMail       = email;

            DBHelper.SaveEntity(Contact);

            if (_clientId != null)
            {
                // TODO Разобраться с LineNumber
                var clientContacts = new Client_Contacts
                {
                    Ref     = DbRef.FromString(_clientId),
                    Id      = DbRef.CreateInstance("Catalog_Client_Contacts", Guid.NewGuid()),
                    Contact = Contact.Id,
                    Actual  = false // Actual на самом деле означает "уволен"
                };
                DBHelper.SaveEntity(clientContacts);
            }
            Navigation.Back();
        }
Пример #4
0
        public static DbRef GetDbRefFromEnum(StatusImportanceEnum @enum)
        {
            string res = null;

            switch (@enum)
            {
            case StatusImportanceEnum.Standart:
                res = "9deb314e-1bd6-1ee0-4eb2-ac621ba09b74";
                break;

            case StatusImportanceEnum.High:
                res = "9495d0f0-6ef5-a7fe-473f-8e2d6e8586e2";
                break;

            case StatusImportanceEnum.Critical:
                res = "a570aeea-0f88-54c3-4075-d0cb82f0dd95";
                break;
            }
            if (string.IsNullOrEmpty(res))
            {
                return(null);
            }
            return(DbRef.FromString($"@ref[Enum_StatusImportance]:{res}"));
        }
Пример #5
0
        public static DbRef GetDbRefFromEnum(StatusTasksEnum @enum)
        {
            string res = null;

            switch (@enum)
            {
            case StatusTasksEnum.New:
                res = "a0a9e67f-483e-419a-a714-859f13c1245c";
                break;

            case StatusTasksEnum.Done:
                res = "a0a9e67f-483e-423a-a714-859f13c1245c";
                break;

            case StatusTasksEnum.Rejected:
                res = "a0a9e67f-483e-426b-a714-859f13c1245c";
                break;
            }
            if (string.IsNullOrEmpty(res))
            {
                return(null);
            }
            return(DbRef.FromString($"@ref[Enum_StatusTasks]:{res}"));
        }
Пример #6
0
        public static DbRef GetDbRefFromEnum(CheckListStatusEnum @enum)
        {
            string res = null;

            switch (@enum)
            {
            case CheckListStatusEnum.Blank:
                res = "854946f6-fc1d-bec2-4968-1f7e3c8d3c61";
                break;

            case CheckListStatusEnum.Active:
                res = "ba4d325a-f1b7-072d-4c3e-fd4bf9f33901";
                break;

            case CheckListStatusEnum.Disactive:
                res = "ab0acbab-556c-7058-4ba9-e4cd72c2958d";
                break;
            }
            if (string.IsNullOrEmpty(res))
            {
                return(null);
            }
            return(DbRef.FromString($"@ref[Enum_CheckListStatus]:{res}"));
        }
Пример #7
0
        public static DbRef GetDbRefFromEnum(ResultEventEnum @enum)
        {
            string res = null;

            switch (@enum)
            {
            case ResultEventEnum.New:
                res = "ae46ba49-b076-6c8c-4730-4709e7191d5b";
                break;

            case ResultEventEnum.Done:
                res = "81270b2c-190a-faf2-440f-4a593042495e";
                break;

            case ResultEventEnum.NotDone:
                res = "9956cf47-e216-522e-48f6-8aba06fc9a5e";
                break;
            }
            if (string.IsNullOrEmpty(res))
            {
                return(null);
            }
            return(DbRef.FromString($"@ref[Enum_ResultEvent]:{res}"));
        }
Пример #8
0
        public void SetDbRefValue(string name, string tableName, string value)
        {
            var dbRef = DbRef.CreateInstance(tableName, Guid.Parse(value));

            SetValue(name, dbRef);
        }
Пример #9
0
        /// <inheritdoc />
        public bool SetProperty(DbRef reference, string propertyName, object propertyValue)
        {
            var cts = new CancellationTokenSource(5000);                              // 5 seconds

            var getAsyncTask = ObjectBase.GetAsync(this.redis, reference, cts.Token); // 5 seconds

            if (!getAsyncTask.Wait(5000))
            {
                return(false);
            }

            var target = getAsyncTask.Result;

            if (target == null)
            {
                return(false);
            }

            var existingProperty = target.Properties?.FirstOrDefault(p => p != null && string.Compare(p.Name, propertyName, StringComparison.OrdinalIgnoreCase) == 0);

            if (existingProperty == null)
            {
                // If unset and property to set to is null, don't do anything.
                if (propertyValue == null || DbRef.Nothing.Equals(propertyValue))
                {
                    return(false);
                }

                // TODO: We currently let anyone create an unset property on any other object.  That should change, but how.
                var newProperty = new Property(propertyName, propertyValue, this.caller.DbRef);

                target.Properties = target.Properties == null ? new[] { newProperty } : (new List <Property>(target.Properties)
                {
                    newProperty
                }).ToArray();
                var saveAsyncTask = target.SaveAsync(this.redis, cts.Token);
                if (!saveAsyncTask.Wait(5000))
                {
                    return(false);
                }

                return(true);
            }

            // Property does exist

            // If I am not the owner, then to change this property, it must be publically writable
            if (!target.Owner.Equals(this.caller.DbRef) && !existingProperty.PublicWriteable)
            {
                return(false);
            }

            // If the new value is null, just delete the property
            if (propertyValue == null)
            {
                var newPropertyList = new List <Property>(target.Properties);
                newPropertyList.Remove(existingProperty);
                target.Properties = newPropertyList.ToArray();
            }
            else
            {
                existingProperty.Value = propertyValue;
            }

            var saveAsyncTask2 = target.SaveAsync(this.redis, cts.Token);

            return(saveAsyncTask2.Wait(5000));
        }
Пример #10
0
 public static new async Task <Player> GetAsync([NotNull] ICacheClient redis, DbRef playerRef, CancellationToken cancellationToken) => (await CacheManager.LookupOrRetrieveAsync(playerRef, redis, async(d, token) => await redis.GetAsync <Player>($"mudpie::player:{d}"), cancellationToken))?.DataObject;
Пример #11
0
        internal void Print_OnClick(object sender, EventArgs e)
        {
            _enteredSumEditText.Enabled = false;

            var checkParameters = new Event_EventFiskalProperties
            {
                Id = DbRef.CreateInstance($"Document_{nameof(Event_EventFiskalProperties)}"
                                          , Guid.NewGuid()),
                Ref  = DbRef.FromString(_eventId),
                User = Settings.UserDetailedInfo.Id
            };

            Dialog.ShowProgressDialog(Translator.Translate("please_wait"), true);

            TaskFactory.RunTaskWithTimeout(() =>
            {
                var checkError = false;

                try
                {
                    PrintCheck();

                    if (_fptr.CloseCheck() < 0)
                    {
                        _fptr.CheckError();
                    }

                    checkParameters.Date = DateTime.Now;

                    DBHelper.SaveEntity(checkParameters, false);
                }
                catch (FPTRException exception)
                {
                    Utils.TraceMessage($"Error code {exception.Result} {exception.Message}");
                    checkError = true;
                    Toast.MakeToast(Translator.Translate(exception.Message));
                }
                catch (Exception exception)
                {
                    Utils.TraceMessage($"{exception.Message}{Environment.NewLine}" +
                                       $"Type {exception.GetType()}");
                }

                Utils.TraceMessage($"Check Error: {checkError}");

                if (!checkError)
                {
                    SaveFptrParameters(checkParameters);
                    BusinessProcess.GlobalVariables[Parameters.IdCurrentEventId] = _eventId;

                    Utils.TraceMessage($"GoTo {nameof(COCScreen)}");
                    Application.InvokeOnMainThread(() =>
                    {
                        Navigation.ModalMove(nameof(COCScreen), new Dictionary <string, object>
                        {
                            { Parameters.IdCurrentEventId, _eventId },
                            { Parameters.IdIsReadonly, _readonly },
                            { Parameters.IdWasEventStarted, _wasStarted }
                        });
                    });
                }
                else
                {
                    try
                    {
                        DBHelper.DeleteByRef(checkParameters.Id, false);
                        _fptr.CancelCheck();
                    }
                    catch (FPTRException exception)
                    {
                        Toast.MakeToast(Translator.Translate(exception.Message));
                    }
                    finally
                    {
                        if (_choosedPaymentType == 0)
                        {
                            Application.InvokeOnMainThread(()
                                                           => _enteredSumEditText.Enabled = true);
                        }
                    }
                }
            }, FptrAction.PrintingTimeOut, result =>
            {
                if (result.Finished)
                {
                    Dialog.HideProgressDialog();
                    return;
                }

                Dialog.HideProgressDialog();
                Toast.MakeToast(Translator.Translate("сonnection_error"));
            });
        }
Пример #12
0
        internal void FinishButton_OnClick(object sender, EventArgs eventArgs)
        {
            if (_eventResults.Id == null)
            {
                Toast.MakeToast("Результат завершения не может быть пустым");
                return;
            }


            Utils.TraceMessage($"_eventResult.Id.Empty: {_eventResults.Id.EmptyRef()} not {!_eventResults.Id.EmptyRef()}{Environment.NewLine}" +
                               $"_evenResult.Negative {_eventResults.Negative} {Environment.NewLine}" +
                               $"string.IsNullOrEmpty(_commentaryMemoEdit.Text) {string.IsNullOrEmpty(_commentaryMemoEdit.Text)}{Environment.NewLine}" +
                               $"Total Result: {!_eventResults.Id.EmptyRef() && _eventResults.Negative && string.IsNullOrEmpty(_commentaryMemoEdit.Text)}");

            if (!_eventResults.Id.EmptyRef() && _eventResults.Negative && string.IsNullOrEmpty(_commentaryMemoEdit.Text))
            {
                Toast.MakeToast("Комментарий не может быть пустым");
                return;
            }
            var eventRef     = DbRef.FromString((string)BusinessProcess.GlobalVariables[Parameters.IdCurrentEventId]);
            var entitiesList = new ArrayList();
            var @event       = (Event)eventRef.GetObject();

            if (((TypesEvents)@event.KindEvent.GetObject()).Name == "Visit")
            {
                var result    = DBHelper.GetCoordinate(TimeRangeCoordinate.DefaultTimeRange);
                var latitude  = Converter.ToDouble(result["Latitude"]);
                var longitude = Converter.ToDouble(result["Longitude"]);
                @event.Latitude  = Converter.ToDecimal(latitude);
                @event.Longitude = Converter.ToDecimal(longitude);
                var text = "";
                Utils.TraceMessage($"lat:{latitude} long:{longitude}");
                if (latitude.Equals(0) & longitude.Equals(0))
                {
                    text += "Не удалось сохранить координаты встречи";
                }
                else
                {
                    text += "Координаты встречи успешно сохранены";
                }
                Toast.MakeToast(text);
            }



            if (!string.IsNullOrEmpty(_commentaryMemoEdit.Text))
            {
                @event.CommentContractor = _commentaryMemoEdit.Text;
            }

            if (!_eventResults.Id.EmptyRef())
            {
                @event.EventResult = _eventResults.Id;
            }

            if (!string.IsNullOrEmpty(@event.CommentContractor) || [email protected]())
            {
                entitiesList.Add(@event);
            }

            DBHelper.SaveEntities(entitiesList);

            _eventResults     = null;
            _commentaryString = null;
            Navigation.CleanStack();
            Navigation.ModalMove("EventListScreen");
        }
Пример #13
0
 internal string GenerateRequiredIndicatorId(DbRef id)
 {
     return(GenerateRequiredIndicatorId(id.ToString(CultureInfo.CurrentCulture)));
 }
Пример #14
0
        public async Task <ProgramContext <T> > RunProgramAsync <T>(
            DbRef programRef,
            [CanBeNull] Connection connection,
            [NotNull] ObjectBase thisObject,
            [NotNull] ObjectBase caller,
            [CanBeNull] string verb,
            [CanBeNull] string argString,
            [CanBeNull] string[] args,
            [CanBeNull] string directObjectString,
            [CanBeNull] ObjectBase directObject,
            [CanBeNull] string prepositionString,
            [CanBeNull] string indirectObjectString,
            [CanBeNull] ObjectBase indirectObject,
            CancellationToken cancellationToken)
        {
            if (thisObject == null)
            {
                throw new ArgumentNullException(nameof(thisObject));
            }

            if (caller == null)
            {
                throw new ArgumentNullException(nameof(caller));
            }

            if (programRef.Equals(DbRef.Nothing))
            {
                return(ProgramContext <T> .Error(null, ContextErrorNumber.ProgramNotSpecified, "No program was supplied"));
            }

            var program = await Program.GetAsync(this.redis, programRef, cancellationToken);

            if (program == null)
            {
                return(ProgramContext <T> .Error(
                           null,
                           ContextErrorNumber.ProgramNotFound,
                           $"Unable to locate program {programRef}"));
            }

            // ReSharper disable once ConditionIsAlwaysTrueOrFalse
            if (connection?.Identity == null && !program.UnauthenticatedExecution)
            {
                return(ProgramContext <T> .Error(program, ContextErrorNumber.AuthenticationRequired, "No trigger was supplied"));
            }

            var context = new ProgramContext <T>(program);

            using (var outputStream = new MemoryStream(2048))
                using (var outputStreamReader = new StreamReader(outputStream))
                    using (var outputStreamWriter = new StreamWriter(outputStream))

                        // Don't try to combine this with the method parameter version
                        using (var outputCancellationTokenSource = new CancellationTokenSource())
                        {
                            Debug.Assert(outputStream != null, "outputStream != null");
                            Debug.Assert(outputStreamWriter != null, "outputStreamWriter != null");

                            var scriptGlobals = new ProgramContextGlobals(thisObject, caller, outputStreamWriter, new Libraries.DatabaseLibrary(caller, this.redis))
                            {
                                ArgString            = argString,
                                Args                 = args,
                                DirectObject         = directObject,
                                DirectObjectString   = directObjectString,
                                IndirectObject       = indirectObject,
                                IndirectObjectString = indirectObjectString,
                                Player               = connection?.Identity,
                                PlayerLocation       = connection?.Identity == null ? null : (await CacheManager.LookupOrRetrieveAsync <ObjectBase>(connection.Identity.Location, this.Redis, async(d, token) => await Room.GetAsync(this.Redis, d, token), cancellationToken))?.DataObject,
                                PrepositionString    = prepositionString,
                                Verb                 = verb
                            };

                            var outputLastPositionRead = 0L;

                            // OUTPUT
                            var appendOutputTask = new Task(
                                async() =>
                            {
                                while (context.State == ContextState.Loaded || context.State == ContextState.Running)
                                {
                                    if (context.State == ContextState.Running)
                                    {
                                        // Input
                                        await scriptGlobals.PlayerInputWriterInternal.FlushAsync();

                                        // Output
                                        await scriptGlobals.PlayerOutput.FlushAsync();
                                        outputStream.Position = Interlocked.Read(ref outputLastPositionRead);
                                        var outputString      = await outputStreamReader.ReadToEndAsync();
                                        if (!string.IsNullOrEmpty(outputString))
                                        {
                                            context.AppendFeedback(outputString);
                                        }

                                        Interlocked.Exchange(ref outputLastPositionRead, outputStream.Position);

                                        // Send output to trigger, if capable of receiving.
                                        while (connection != null && context.Output.Count > 0)
                                        {
                                            string nextOutput;
                                            if (context.Output.TryDequeue(out nextOutput) && nextOutput != null)
                                            {
                                                await connection.SendAsync(nextOutput, cancellationToken);
                                            }
                                            else
                                            {
                                                break;
                                            }
                                        }
                                    }

                                    Thread.Sleep(100);
                                }
                            },
                                outputCancellationTokenSource.Token);
                            appendOutputTask.Start();

                            // INPUT
                            if (program.Interactive)
                            {
                                connection?.RedirectInputToProgram(
                                    async input =>
                                {
                                    await scriptGlobals.PlayerInputWriterInternal.WriteAsync(input);
                                    await scriptGlobals.PlayerInputWriterInternal.FlushAsync();
                                });
                            }

                            try
                            {
                                await context.RunAsync(scriptGlobals, cancellationToken);
                            }
                            finally
                            {
                                connection?.ResetInputRedirection();
                            }

                            outputCancellationTokenSource.Cancel();

                            // Do one last time to get any last feedback

                            // Input
                            await scriptGlobals.PlayerInputWriterInternal.FlushAsync();

                            // Output
                            await scriptGlobals.PlayerOutput.FlushAsync();

                            outputStream.Position = Interlocked.Read(ref outputLastPositionRead);
                            var feedbackString2 = await outputStreamReader.ReadToEndAsync();

                            Interlocked.Exchange(ref outputLastPositionRead, outputStream.Position);
                            if (!string.IsNullOrEmpty(feedbackString2))
                            {
                                context.AppendFeedback(feedbackString2);
                            }

                            // Send output to trigger, if capable of receiving.
                            while (connection != null && context.Output.Count > 0)
                            {
                                string nextOutput;
                                if (context.Output.TryDequeue(out nextOutput) && nextOutput != null)
                                {
                                    await connection.SendAsync(nextOutput, cancellationToken);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }

            return(context);
        }
Пример #15
0
        public static async Task <Tuple <DbRef, ObjectBase> > MatchVerbAsync([CanBeNull] Player player, [NotNull] ICacheClient redis, [NotNull] string text, DbRef directObjectRef, DbRef indirectObjectRef, CancellationToken cancellationToken)
        {
            var matched = await MatchTypeAsync <Link>(player, redis, text, cancellationToken);

            if (!matched.Item1.Equals(DbRef.FailedMatch))
            {
                return(matched);
            }

            // We didn't find a verb, so try hunting on the Direct Object
            if (!directObjectRef.Equals(DbRef.Ambiguous) && !directObjectRef.Equals(DbRef.FailedMatch) && !directObjectRef.Equals(DbRef.Nothing))
            {
                var        exactMatch             = DbRef.FailedMatch;
                ObjectBase lastExactMatchObject   = null;
                var        partialMatch           = DbRef.FailedMatch;
                ObjectBase lastPartialMatchObject = null;

                var directObject = await CacheManager.LookupOrRetrieveAsync(directObjectRef, redis, async (d, token) => await ObjectBase.GetAsync(redis, d, token), cancellationToken);

                if (directObject == null)
                {
                    return(new Tuple <DbRef, ObjectBase>(exactMatch, null));
                }

                MatchTypeOnObject <Link, ObjectBase>(text, directObject, ref exactMatch, ref lastExactMatchObject, ref partialMatch, ref lastPartialMatchObject);

                if (exactMatch > 0)
                {
                    return(exactMatch > 0
                        ? new Tuple <DbRef, ObjectBase>(exactMatch, lastExactMatchObject)
                        : new Tuple <DbRef, ObjectBase>(exactMatch, null));
                }

                if (partialMatch > 0)
                {
                    return(partialMatch > 0
                        ? new Tuple <DbRef, ObjectBase>(partialMatch, lastPartialMatchObject)
                        : new Tuple <DbRef, ObjectBase>(partialMatch, null));
                }

                return(new Tuple <DbRef, ObjectBase>(exactMatch + partialMatch, null));
            }

            // We didn't find a verb, so try hunting on the Indirect Object
            if (!indirectObjectRef.Equals(DbRef.Ambiguous) && !indirectObjectRef.Equals(DbRef.FailedMatch) && !indirectObjectRef.Equals(DbRef.Nothing))
            {
                var        exactMatch             = DbRef.FailedMatch;
                ObjectBase lastExactMatchObject   = null;
                var        partialMatch           = DbRef.FailedMatch;
                ObjectBase lastPartialMatchObject = null;

                var indirectObject = await CacheManager.LookupOrRetrieveAsync(indirectObjectRef, redis, async (d, token) => await ObjectBase.GetAsync(redis, d, token), cancellationToken);

                if (indirectObject == null)
                {
                    return(new Tuple <DbRef, ObjectBase>(exactMatch, null));
                }

                MatchTypeOnObject <Link, ObjectBase>(text, indirectObject, ref exactMatch, ref lastExactMatchObject, ref partialMatch, ref lastPartialMatchObject);

                if (exactMatch > 0)
                {
                    return(exactMatch > 0
                        ? new Tuple <DbRef, ObjectBase>(exactMatch, lastExactMatchObject)
                        : new Tuple <DbRef, ObjectBase>(exactMatch, null));
                }

                if (partialMatch > 0)
                {
                    return(partialMatch > 0
                        ? new Tuple <DbRef, ObjectBase>(partialMatch, lastPartialMatchObject)
                        : new Tuple <DbRef, ObjectBase>(partialMatch, null));
                }

                return(new Tuple <DbRef, ObjectBase>(exactMatch + partialMatch, null));
            }

            return(new Tuple <DbRef, ObjectBase>(DbRef.FailedMatch, null));
        }
Пример #16
0
        private object Parse(Type type, object value)
        {
            object result     = null;
            bool   isNullable = !type.IsValueType;
            Type   t          = Nullable.GetUnderlyingType(type);

            if (t == null)
            {
                t          = type;
                isNullable = true;
            }

            if (value == null)
            {
                return(isNullable ? null : Activator.CreateInstance(type));
            }

            var str = value as string;

            if (str != null)
            {
                if (t == typeof(IDbRef))
                {
                    if (DbRef.CheckIsRef(str))
                    {
                        result = DbRef.FromString(str);
                    }
                    else
                    {
                        throw new Exception("Invalid DBRef: " + str);
                    }
                }
                else if (type == typeof(string))
                {
                    result = str;
                }
                else if (t == typeof(Guid))
                {
                    result = Guid.Parse(str);
                }
                else if (t == typeof(DateTime))
                {
                    result = DateTime.Parse(str);
                }
                else if (t == typeof(Int32))
                {
                    result = Int32.Parse(str);
                }
                else if (t == typeof(Decimal))
                {
                    decimal dec;
                    if (!Decimal.TryParse(str, out dec))
                    {
                        dec = Decimal.Parse(str, CultureInfo.InvariantCulture);
                    }
                    result = dec;
                }
                else if (t == typeof(Boolean))
                {
                    result = Boolean.Parse(str);
                }
            }
            else if (t.IsInterface && value != null && value.GetType().GetInterfaces().Contains(t))
            {
                result = value;
            }
            else
            {
                try
                {
                    result = Convert.ChangeType(value, t);
                }
                catch (FormatException)
                {
                    result = Convert.ChangeType(value, t, CultureInfo.InvariantCulture);
                }
            }

            return(result);
        }
Пример #17
0
 public DbEngine.DbRef EmptyRef(String tableName)
 {
     return(DbRef.CreateInstance(tableName, Guid.Empty));
 }
Пример #18
0
 public static object LoadEntity(string id)
 {
     return(DbRef.FromString(id).GetObject());
 }
Пример #19
0
        public static DbRef GetDbRefFromEnum(WebactionsEnum @enum)
        {
            string res = null;

            switch (@enum)
            {
            case WebactionsEnum.EventsEditing:
                res = "0236eb9f-eed9-489b-9152-86b037e79a79";
                break;

            case WebactionsEnum.EventsDeleting:
                res = "0236eb9f-eed9-490b-9152-86b037e79a79";
                break;

            case WebactionsEnum.EventsOptionsEditing:
                res = "0236eb9f-eed9-491b-9152-86b037e79a79";
                break;

            case WebactionsEnum.EventsAllAvaliable:
                res = "0236eb9f-eed9-492b-9152-86b037e79a79";
                break;

            case WebactionsEnum.EventsShowAVR:
                res = "0236eb9f-eed9-494b-9152-86b037e79a79";
                break;

            case WebactionsEnum.UsersEditing:
                res = "0236eb9f-eed9-495b-9152-86b037e79a79";
                break;

            case WebactionsEnum.UsersDeleting:
                res = "0236eb9f-eed9-496b-9152-86b037e79a79";
                break;

            case WebactionsEnum.UsersManageRoles:
                res = "0236eb9f-eed9-497b-9152-86b037e79a79";
                break;

            case WebactionsEnum.ClientsEditing:
                res = "0236eb9f-eed9-498b-9152-86b037e79a79";
                break;

            case WebactionsEnum.ClientsDeleting:
                res = "0236eb9f-eed9-499b-9152-86b037e79a79";
                break;

            case WebactionsEnum.ClientsOptionsEditing:
                res = "0236eb9f-eed9-500b-9152-86b037e79a79";
                break;

            case WebactionsEnum.TasksEditing:
                res = "0236eb9f-eed9-501b-9152-86b037e79a79";
                break;

            case WebactionsEnum.EquipmentsEditing:
                res = "0236eb9f-eed9-502b-9152-86b037e79a79";
                break;

            case WebactionsEnum.EquipmentsDeleting:
                res = "0236eb9f-eed9-503b-9152-86b037e79a79";
                break;

            case WebactionsEnum.EquipmentsOptionsEditing:
                res = "0236eb9f-eed9-504b-9152-86b037e79a79";
                break;

            case WebactionsEnum.RIMEditing:
                res = "0236eb9f-eed9-505b-9152-86b037e79a79";
                break;

            case WebactionsEnum.RIMDeleting:
                res = "0236eb9f-eed9-506b-9152-86b037e79a79";
                break;

            case WebactionsEnum.CheckListsEditing:
                res = "0236eb9f-eed9-507b-9152-86b037e79a79";
                break;

            case WebactionsEnum.CheckListManageActivityStatus:
                res = "0236eb9f-eed9-508b-9152-86b037e79a79";
                break;

            case WebactionsEnum.AnaliticAccess:
                res = "0236eb9f-eed9-509b-9152-86b037e79a79";
                break;

            case WebactionsEnum.WebInterfaceAccess:
                res = "0236eb9f-eed9-510b-9152-86b037e79a79";
                break;

            case WebactionsEnum.MobileAppAccess:
                res = "0236eb9f-eed9-511b-9152-86b037e79a79";
                break;

            case WebactionsEnum.MobileFPRAccess:
                res = "f22c49d3-42b4-4ccc-9646-970ee8f7db23";
                break;
            }
            if (string.IsNullOrEmpty(res))
            {
                return(null);
            }
            return(DbRef.FromString($"@ref[Enum_Webactions]:{res}"));
        }
Пример #20
0
        /// <inheritdoc />
        public override void Sanitize()
        {
            this.Target = DbRef.Nothing;

            base.Sanitize();
        }