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); }
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); }); }
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); }); }
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); }
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)); }); }
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)); }); }
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); }