Example #1
0
        public static CounterDto IncrementCounter(string key, bool decrement)
        {
            var counter =
                Data.GetEnumeration <CounterDto>()
                .Where(c => c.Key == key)
                .OrderByDescending(c => c.Value)
                .FirstOrDefault();

            if (counter != null)
            {
                counter.Value = counter.Value + (decrement ? -1 : 1);
            }
            else
            {
                counter = new CounterDto
                {
                    Id    = AutoIncrementIdGenerator.GenerateId(typeof(ListDto)),
                    Key   = key,
                    Value = (decrement ? 0 : 1)
                };

                Data.Create(counter);
            }
            return(counter);
        }
        public ActionResult Statistic()
        {
            CounterDto CounterDto = GetCounter();

            WriteCounter();
            return(PartialView(CounterDto));
        }
 MunicipalResourceNotElectricType GetNotElectricType(CounterDto dto)
 {
     return(new MunicipalResourceNotElectricType {
         MeteringValue = dto.Value.T1,
         MunicipalResource = new nsiRef {
             Code = dto.Resource.Code,
             GUID = dto.Resource.Guid
         }
     });
 }
 MunicipalResourceElectricType GetElectricType(CounterDto dto)
 {
     return(new MunicipalResourceElectricType {
         TransformationRatioSpecified = false,
         MeteringValueT1 = dto.Value.T1,
         MeteringValueT2Specified = dto.Value.T2.HasValue,
         MeteringValueT2 = dto.Value.T2.HasValue ? dto.Value.T2.Value : 0,
         MeteringValueT3Specified = dto.Value.T3.HasValue,
         MeteringValueT3 = dto.Value.T3.HasValue ? dto.Value.T3.Value : 0
     });
 }
        public CounterDto GetCounter()
        {
            CounterDto counter = new CounterDto();

            counter.All = int.Parse(ReadFile(Server.MapPath(CONST.COUNTER.PATH_ALL)));
            String today = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + ".txt";

            counter.Today = int.Parse(ReadFile(Server.MapPath(CONST.COUNTER.PATH + today)));


            return(counter);
        }
Example #6
0
        public void DecrementCounter_AddsRecordToCounterTable_WithNegativeValue()
        {
            UseConnection(database =>
            {
                Commit(database, x => x.DecrementCounter("my-key"));

                CounterDto record = AsyncHelper.RunSync(() => database.Counter.Find(new BsonDocument()).ToListAsync()).Single();

                Assert.Equal("my-key", record.Key);
                Assert.Equal(-1, record.Value);
                Assert.Equal(null, record.ExpireAt);
            });
        }
Example #7
0
        public void IncrementCounter_AddsRecordToCounterTable_WithPositiveValue()
        {
            UseConnection(database =>
            {
                Commit(database, x => x.IncrementCounter("my-key"));

                CounterDto record = database.Counter.Find(new BsonDocument()).ToList().Single();

                Assert.Equal("my-key", record.Key);
                Assert.Equal(1, record.Value);
                Assert.Equal(null, record.ExpireAt);
            });
        }
        public void DecrementCounter_AddsRecordToCounterTable_WithNegativeValue()
        {
            ConnectionUtils.UseConnection(database =>
            {
                Commit(database, x => x.DecrementCounter("my-key"));

                CounterDto record = database.StateData.OfType <CounterDto>().Find(new BsonDocument()).ToList().Single();

                Assert.Equal("my-key", record.Key);
                Assert.Equal(-1L, record.Value);
                Assert.Equal(null, record.ExpireAt);
            });
        }
        public void DecrementCounter_AddsRecordToCounterTable_WithNegativeValue()
        {
            UseConnection(database =>
            {
                Commit(database, x => x.DecrementCounter("my-key"));

                CounterDto record = database.Counter.FindAll().Single();

                Assert.Equal("my-key", record.Key);
                Assert.Equal(-1, record.Value);
                Assert.Equal(null, record.ExpireAt);
            });
        }
Example #10
0
        public void IncrementCounter_AddsRecordToCounterTable_WithPositiveValue()
        {
            //ARRANGE

            //ACT
            _transaction.IncrementCounter("my-key");
            _transaction.Commit();

            //ASSERT
            CounterDto record = _realm.All <CounterDto>().Single();

            Assert.AreEqual("my-key", record.Key);
            Assert.AreEqual(1L, record.Value);
            Assert.Null(record.ExpireAt);
        }
        private static ObjectId CreateExpirationEntry(HangfireDbContext connection, DateTime?expireAt)
        {
            var counter = new CounterDto
            {
                Id       = ObjectId.GenerateNewId(),
                Key      = "key",
                Value    = 1,
                ExpireAt = expireAt
            };

            connection.Counter.Insert(counter);

            var id = counter.Id;

            return(id);
        }
Example #12
0
        public void DecrementCounter_WithExpiry_AddsARecord_WithExpirationTimeSet()
        {
            UseConnection(database =>
            {
                Commit(database, x => x.DecrementCounter("my-key", TimeSpan.FromDays(1)));

                CounterDto record = database.Counter.Find(new BsonDocument()).ToList().Single();

                Assert.Equal("my-key", record.Key);
                Assert.Equal(-1, record.Value);
                Assert.NotNull(record.ExpireAt);

                var expireAt = (DateTime)record.ExpireAt;

                Assert.True(database.GetServerTimeUtc().AddHours(23) < expireAt);
                Assert.True(expireAt < database.GetServerTimeUtc().AddHours(25));
            });
        }
        public void DecrementCounter_WithExpiry_AddsARecord_WithExpirationTimeSet()
        {
            ConnectionUtils.UseConnection(database =>
            {
                Commit(database, x => x.DecrementCounter("my-key", TimeSpan.FromDays(1)));

                CounterDto record = database.StateData.OfType <CounterDto>().Find(new BsonDocument()).ToList().Single();

                Assert.Equal("my-key", record.Key);
                Assert.Equal(-1L, record.Value);
                Assert.NotNull(record.ExpireAt);

                var expireAt = (DateTime)record.ExpireAt;

                Assert.True(DateTime.UtcNow.AddHours(23) < expireAt);
                Assert.True(expireAt < DateTime.UtcNow.AddHours(25));
            });
        }
Example #14
0
        public void IncrementCounter_WithExpiry_AddsARecord_WithExpirationTimeSet()
        {
            UseConnection(database =>
            {
                Commit(database, x => x.IncrementCounter("my-key", TimeSpan.FromDays(1)));

                CounterDto counter = database.JobGraph.OfType <CounterDto>().Find(new BsonDocument()).Single();

                Assert.Equal("my-key", counter.Key);
                Assert.Equal(1L, counter.Value);
                Assert.NotNull(counter.ExpireAt);

                var expireAt = (DateTime)counter.ExpireAt;

                Assert.True(DateTime.UtcNow.AddHours(23) < expireAt);
                Assert.True(expireAt < DateTime.UtcNow.AddHours(25));
            });
        }
Example #15
0
        public void IncrementCounter_WithExpiry_AddsARecord_WithExpirationTimeSet()
        {
            // ARRANGE

            //ACT
            _transaction.IncrementCounter("my-key", TimeSpan.FromDays(1));
            _transaction.Commit();

            //ASSERT
            CounterDto record = _realm.All <CounterDto>().Single();

            Assert.AreEqual("my-key", record.Key);
            Assert.AreEqual(1L, record.Value);
            Assert.NotNull(record.ExpireAt);

            var expireAt = (DateTimeOffset)record.ExpireAt;

            Assert.True(DateTime.UtcNow.AddHours(23) < expireAt);
            Assert.True(expireAt < DateTime.UtcNow.AddHours(25));
        }
        MeteringDeviceFullInformationType DeviceDataToCreate(CounterDto dto)
        {
            var value = new MeteringDeviceFullInformationType {
                //Объем реусурса определяетс несколькими ПУ
                Item = false,
                BasicChatacteristicts = GetBasicCharacteristic(dto)
            };

            switch (dto.ResourceType)
            {
            case ResourceType.Electrical:
                value.Items = new object[] {
                    GetElectricType(dto)
                };
                break;

            case ResourceType.Municipal:
                value.Items = new object[] {
                    GetNotElectricType(dto)
                };
                break;
            }
            return(value);
        }
        MeteringDeviceBasicCharacteristicsType GetBasicCharacteristic(CounterDto dto)
        {
            var value = new MeteringDeviceBasicCharacteristicsType {
                CommissioningDateSpecified     = true,
                CommissioningDate              = dto.CommissioningDate,
                FactorySealDateSpecified       = dto.FactorySealDate.HasValue,
                FactorySealDate                = dto.FactorySealDate.HasValue? dto.FactorySealDate.Value : new DateTime(),
                FirstVerificationDateSpecified = dto.FirstVerificationDate.HasValue,
                FirstVerificationDate          = dto.FirstVerificationDate.HasValue ? dto.FirstVerificationDate.Value : new DateTime(),
                InstallationDateSpecified      = dto.InstallationDate.HasValue,
                InstallationDate               = dto.InstallationDate.HasValue ? dto.InstallationDate.Value : new DateTime(),
                MeteringDeviceModel            = dto.Model,
                MeteringDeviceStamp            = dto.Stamp,
                MeteringDeviceNumber           = dto.Number,
                PressureSensor     = false,
                RemoteMeteringMode = false,
                TemperatureSensor  = false,
            };

            switch (dto.Type)
            {
            case CounterType.ApartmentHouseDevice:
                value.Item = new MeteringDeviceBasicCharacteristicsTypeApartmentHouseDevice {
                    AccountGUID = new string[] { dto.AccountGUID }
                };
                break;

            case CounterType.CollectiveApartmentDevice:
                value.Item = new MeteringDeviceBasicCharacteristicsTypeCollectiveApartmentDevice {
                    AccountGUID = new string[] { dto.AccountGUID },
                    PremiseGUID = dto.PremisesGUID
                };
                break;

            case CounterType.CollectiveDevice:
                value.Item = new MeteringDeviceBasicCharacteristicsTypeCollectiveDevice {
                    PressureSensingElementInfo    = "Н/А",
                    TemperatureSensingElementInfo = "Н/А"
                };
                break;

            case CounterType.LivingRoomDevice:
                value.Item = new MeteringDeviceBasicCharacteristicsTypeLivingRoomDevice {
                    AccountGUID    = new string[] { dto.AccountGUID },
                    LivingRoomGUID = new string[] { dto.PremisesGUID }
                };
                break;

            case CounterType.NonResidentialPremiseDevice:
                value.Item = new MeteringDeviceBasicCharacteristicsTypeNonResidentialPremiseDevice {
                    AccountGUID = new string[] { dto.AccountGUID },
                    PremiseGUID = dto.PremisesGUID
                };
                break;

            case CounterType.ResidentialPremiseDevice:
                value.Item = new MeteringDeviceBasicCharacteristicsTypeResidentialPremiseDevice {
                    AccountGUID = new string[] { dto.AccountGUID },
                    PremiseGUID = dto.PremisesGUID
                };
                break;

            default:
                throw new NotImplementedException();
            }

            return(value);
        }
        importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdate DeviceDataToUpdate(CounterDto dto)
        {
            var value = new importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdate {
                MeteringDeviceVersionGUID = dto.MeteringDeviceVersionGUID,
                Item = new MeteringDeviceFullInformationType {
                    Item  = false,
                    Items = dto.ResourceType == ResourceType.Electrical ?
                            new object[] { GetElectricType(dto) } : new object[] { GetNotElectricType(dto) },
                    BasicChatacteristicts = GetBasicCharacteristic(dto)
                }
            };

            return(value);
        }