Ejemplo n.º 1
0
        public ActionResult <ValueItem> Add([FromBody] AddValue value)
        {
            var user = HttpContext.User.Claims.First(x => x.Type == OpenIdConnectConstants.Claims.Name).Value;
            var item = _valueRepository.Add(user, value.value);

            return(item);
        }
Ejemplo n.º 2
0
        public ActionResult <AddValueResponse> Post(AddValue request)
        {
            AddValueResponse ret = new AddValueResponse();
            GXUpdateArgs     arg;

            if (request.Items != null)
            {
                DateTime now = DateTime.Now;
                foreach (GXValue it in request.Items)
                {
                    if (it.Read == DateTime.MinValue)
                    {
                        it.Read = now;
                    }
                    GXAttribute value = new GXAttribute();
                    value.Id    = it.AttributeId;
                    value.Value = it.Value;
                    value.Read  = it.Read;
                    arg         = GXUpdateArgs.Update <GXAttribute>(value, q => new { q.Value, q.Read });
                    host.Connection.Update(arg);
                }
                host.Connection.Insert(GXInsertArgs.InsertRange(request.Items));
                host.SetChange(TargetType.Value, now);
            }
            return(ret);
        }
Ejemplo n.º 3
0
        public OperationResult <Value> Post([FromBody] AddValue value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            return(new Value {
                Data = value.Foo
            });
        }
Ejemplo n.º 4
0
        private void gridAdd_Click(object sender, EventArgs e)
        {
            AddValue     addValue = new AddValue(treeViewRegistery.SelectedNode.FullPath);
            DialogResult result   = addValue.ShowDialog();

            if (result == DialogResult.OK)
            {
                BindValues(treeViewRegistery.SelectedNode);
            }
            else
            {
                MessageBox.Show("عملیات توسط کاربر لغو شد.", "افزودن", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        public static void CharaMoveCommandOwnerTest()
        {
            var assignValue  = new AssignValue();
            var assignValue2 = new AssignValue();
            var addValue     = new AddValue();
            var addValue2    = new AddValue();

            // この時点で EventCommand の Owner が null であることを確認
            Assert.IsNull(assignValue.Owner);
            Assert.IsNull(assignValue2.Owner);
            Assert.IsNull(addValue.Owner);
            Assert.IsNull(addValue2.Owner);

            var actionEntry = new ActionEntry();

            actionEntry.CommandList.Add(assignValue);
            actionEntry.CommandList.Add(addValue);

            // この時点で ActionEntry, EventCommand の Owner が null であることを確認
            Assert.IsNull(actionEntry.Owner);
            Assert.IsNull(assignValue.Owner);
            Assert.IsNull(assignValue2.Owner);
            Assert.IsNull(addValue.Owner);
            Assert.IsNull(addValue2.Owner);

            var instance = new MapEventPageMoveRouteInfo
            {
                CustomMoveRoute = actionEntry
            };

            // この時点で ActionEntry, セット済みのEventCommand の Owner がセットされていることを確認
            Assert.AreEqual(actionEntry.Owner, TargetAddressOwner.MapEvent);
            Assert.AreEqual(assignValue.Owner, TargetAddressOwner.MapEvent);
            Assert.AreEqual(addValue.Owner, TargetAddressOwner.MapEvent);
            Assert.IsNull(assignValue2.Owner);
            Assert.IsNull(addValue2.Owner);

            actionEntry.CommandList.Add(assignValue2);
            actionEntry.CommandList.Add(addValue2);

            // EventCommand の Owner に適切な値が設定されること
            Assert.AreEqual(assignValue2.Owner, TargetAddressOwner.MapEvent);
            Assert.AreEqual(addValue2.Owner, TargetAddressOwner.MapEvent);

            // instance をここまで開放したくないので無駄な処理を入れる
            instance.MoveSpeed = MoveSpeed.Fast;
        }
Ejemplo n.º 6
0
        public static void TargetAddressTest(int initValue, string targetOwnerId,
                                             bool isError, int answerValue)
        {
            var instance = new AddValue
            {
                Owner = targetOwnerId.Equals("m")
                    ? TargetAddressOwner.MapEvent
                    : TargetAddressOwner.CommonEvent
            };
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };

            var errorOccured = false;

            try
            {
                instance.TargetAddress = initValue;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーフラグが一致すること
            Assert.AreEqual(errorOccured, isError);

            if (!errorOccured)
            {
                var resultValue = (int)instance.TargetAddress;

                // 取得した値が意図した値と一致すること
                Assert.AreEqual(resultValue, answerValue);
            }

            // 意図したとおりプロパティ変更通知が発火していること
            if (errorOccured)
            {
                Assert.AreEqual(changedPropertyList.Count, 0);
            }
            else
            {
                Assert.AreEqual(changedPropertyList.Count, 1);
                Assert.IsTrue(changedPropertyList[0].Equals(nameof(AddValue.TargetAddress)));
            }
        }
Ejemplo n.º 7
0
        public static void SerializeTest()
        {
            var target = new AddValue
            {
                Value         = 5,
                TargetAddress = 2000000
            };
            var changedPropertyList = new List <string>();

            target.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };

            var clone = DeepCloner.DeepClone(target);

            Assert.IsTrue(clone.Equals(target));

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Ejemplo n.º 8
0
        public void Add(K _key, V _newValue)
        {
            if (isValueNull(_newValue))
            {
                throw new NullNotAllowedException("Null not allowed as value");
            }

            List <V> tempValues;

            if (map.TryGetValue(_key, out tempValues))
            {
                AddValue?.Invoke(_newValue);
                tempValues.Add(_newValue);
            }
            else
            {
                AddKey?.Invoke(_key);

                tempValues = new List <V>();
                tempValues.Add(_newValue);
                map.Add(_key, tempValues);
            }
        }
Ejemplo n.º 9
0
 internal static void Read(ILogger _logger, System.Net.Http.HttpClient client, GXDLMSReader reader, GXTask task, IGXMedia net, GXDLMSObject obj)
 {
     AddValue v;
     System.Net.Http.HttpResponseMessage response;
     if (_logger != null)
     {
         _logger.LogInformation("Reading: " + obj.ToString());
     }
     Console.WriteLine("Reading: " + obj.ToString());
     object val;
     if (obj.ObjectType == ObjectType.ProfileGeneric && task.Index == 2 && GetReadTime(task.Object) != DateTime.MinValue && IsSortedByDateTime(task.Object))
     {
         //Read profile generic using range.
         DateTime now = DateTime.Now;
         now = now.AddSeconds(-now.Second);
         now = now.AddMinutes(-now.Minute);
         now = now.AddHours(1);
         val = reader.ReadRowsByRange((GXDLMSProfileGeneric)obj, task.Object.Attributes[GetBufferIndex(task.Object)].Read, now);
     }
     else
     {
         val = reader.Read(obj, task.Index);
     }
     if (val is Enum)
     {
         //Enum values are saved as interger.
         val = Convert.ToString(Convert.ToInt32(val));
     }
     else if (val is byte[])
     {
         DataType dt = (DataType)task.Object.Attributes[GetBufferIndex(task.Object)].UIDataType;
         if (dt == DataType.String)
         {
             val = ASCIIEncoding.ASCII.GetString((byte[])val);
         }
         else if (dt == DataType.StringUTF8)
         {
             val = ASCIIEncoding.UTF8.GetString((byte[])val);
         }
         else
         {
             val = GXCommon.ToHex((byte[])val);
         }
     }
     else if (val is GXDateTime)
     {
         val = ((GXDateTime)val).ToFormatString();
     }
     if (obj.ObjectType == ObjectType.ProfileGeneric && task.Index == 2)
     {
         //Make own value from each row.
         if (val != null)
         {
             UInt64 attributeId = task.Object.Attributes[GetBufferIndex(task.Object)].Id;
             List<GXValue> list = new List<GXValue>();
             DateTime latest = task.Object.Attributes[GetBufferIndex(task.Object)].Read;
             DateTime first = latest;
             Boolean read = false;
             int period = -1;
             foreach (GXStructure row in (GXArray)val)
             {
                 DateTime dt = DateTime.MinValue;
                 task.Data = GXDLMSTranslator.ValueToXml(row);
                 for (int pos = 0; pos != row.Count; ++pos)
                 {
                     if (row[pos] is byte[])
                     {
                         row[pos] = GXDLMSClient.ChangeType((byte[])row[pos], DataType.DateTime);
                         if (pos == 0)
                         {
                             dt = ((GXDateTime)row[pos]).Value.LocalDateTime;
                             //If we have already read this row.
                             if (dt <= first)
                             {
                                 read = true;
                                 break;
                             }
                             if (dt > latest)
                             {
                                 latest = dt;
                             }
                         }
                     }
                     //Some meters are returning null as date time to save bytes...
                     if (pos == 0 && row[pos] == null)
                     {
                         if (period == -1)
                         {
                             period = GetCapturePeriod(task.Object);
                             if (period == -1)
                             {
                                 throw new Exception("Invalid capture period.");
                             }
                         }
                         row[pos] = latest.AddMinutes(period);
                     }
                 }
                 if (_logger != null)
                 {
                     _logger.LogInformation("Read: " + task.Data);
                 }
                 if (!read)
                 {
                     list.Add(new GXValue()
                     {
                         Read = dt,
                         Value = task.Data,
                         AttributeId = attributeId
                     });
                 }
             }
             if (list.Count != 0)
             {
                 v = new AddValue() { Items = list.ToArray() };
                 response = client.PostAsJsonAsync(Startup.ServerAddress + "/api/value/AddValue", v).Result;
                 Helpers.CheckStatus(response);
                 ListDevicesResponse r = response.Content.ReadAsAsync<ListDevicesResponse>().Result;
             }
         }
     }
     else
     {
         if (!(val is string))
         {
             val = Convert.ToString(val);
         }
         task.Data = (string)val;
         if (_logger != null)
         {
             _logger.LogInformation("Read: " + (string)val);
         }
         int index = GetAttributeIndex(task.Object, task.Index);
         if (index != -1)
         {
             UInt64 attributeId = task.Object.Attributes[index].Id;
             v = new AddValue()
             {
                 Items = new GXValue[] {new GXValue(){
                     AttributeId = attributeId,
                     Read = DateTime.Now,
                     Value = (string)val}
                 }
             };
             response = client.PostAsJsonAsync(Startup.ServerAddress + "/api/value/AddValue", v).Result;
             Helpers.CheckStatus(response);
             AddValueResponse r = response.Content.ReadAsAsync<AddValueResponse>().Result;
         }
         else
         {
             if (_logger != null)
             {
                 _logger.LogInformation("Invalid task index: " + task.Index);
             }
         }
     }
 }
Ejemplo n.º 10
0
    //public GameObject actionPanelGameObject;


    void Start()
    {
        actionMenu = GameObject.Find("Action Panel").GetComponent <ActionMenu>();

        av = GameObject.Find("AddController").GetComponent <AddValue>();
    }
Ejemplo n.º 11
0
        public static void EventCommandsOwnerTest()
        {
            var assignValue  = new AssignValue();
            var assignValue2 = new AssignValue();
            var addValue     = new AddValue();
            var addValue2    = new AddValue();

            // この時点で EventCommand の Owner が null であることを確認
            Assert.IsNull(assignValue.Owner);
            Assert.IsNull(assignValue2.Owner);
            Assert.IsNull(addValue.Owner);
            Assert.IsNull(addValue2.Owner);

            var commonEvent = new CommonEvent();

            var list = new EventCommandList();

            var moveRoute = new MoveRoute();

            var actionEntry = new ActionEntry();

            actionEntry.CommandList.Add(assignValue);
            actionEntry.CommandList.Add(addValue);

            // この時点で EventCommandList, MoveRoute, ActionEntry, EventCommand の Owner が null であることを確認
            Assert.IsNull(list.Owner);
            Assert.IsNull(moveRoute.Owner);
            Assert.IsNull(actionEntry.Owner);
            Assert.IsNull(assignValue.Owner);
            Assert.IsNull(assignValue2.Owner);
            Assert.IsNull(addValue.Owner);
            Assert.IsNull(addValue2.Owner);

            moveRoute.ActionEntry = actionEntry;
            list.Add(moveRoute);

            // この時点で EventCommand の Owner が null であることを確認
            Assert.IsNull(assignValue.Owner);
            Assert.IsNull(assignValue2.Owner);
            Assert.IsNull(addValue.Owner);
            Assert.IsNull(addValue2.Owner);

            commonEvent.EventCommands = list;

            // この時点で EventCommandList, MoveRoute, ActionEntry, セット済みのEventCommand の
            // Owner がセットされていることを確認
            Assert.AreEqual(list.Owner, TargetAddressOwner.CommonEvent);
            Assert.AreEqual(moveRoute.Owner, TargetAddressOwner.CommonEvent);
            Assert.AreEqual(assignValue.Owner, TargetAddressOwner.CommonEvent);
            Assert.AreEqual(addValue.Owner, TargetAddressOwner.CommonEvent);

            actionEntry.CommandList.Add(assignValue2);
            moveRoute.ActionEntry.CommandList.Add(addValue2);

            // EventCommand の Owner に適切な値が設定されること
            Assert.AreEqual(assignValue2.Owner, TargetAddressOwner.CommonEvent);
            Assert.AreEqual(addValue2.Owner, TargetAddressOwner.CommonEvent);

            // commonEvent をここまで開放したくないので無駄な処理を入れる
            commonEvent.Memo = "";
        }