Esempio n. 1
0
        public async Task <SourceGetListRp> CreateOrUpdate(CustomerEntity customer, string product,
                                                           string name, string tags,
                                                           string avatar,
                                                           DefinitionValue availabilityDefinition,
                                                           DefinitionValue latencyDefinition,
                                                           DefinitionValue experienceDefinition,
                                                           string description, decimal percentile)
        {
            var createdBy = this._identityGateway.GetIdentity();

            this._dbContext.ChangeTracker.AutoDetectChangesEnabled = true;
            var entity = await this._dbContext.Sources.Where(c => c.Product.CustomerId == customer.Id && c.Product.Name == product && c.Name == name).SingleOrDefaultAsync();

            if (entity == null)
            {
                var productEntity = await this._dbContext.Products.Where(c => c.CustomerId == customer.Id && c.Name == product).SingleAsync();

                entity = SourceEntity.Factory.Create(productEntity, name, this._datetimeGateway.GetCurrentDateTime(), createdBy);
            }

            entity.Update(name, avatar, availabilityDefinition, latencyDefinition, experienceDefinition,
                          this._datetimeGateway.GetCurrentDateTime(),
                          createdBy, tags, description, percentile);

            this._dbContext.Sources.Update(entity);
            await this._dbContext.SaveChangesAsync();

            return(this._mapper.Map <SourceGetListRp>(entity));
        }
Esempio n. 2
0
        public virtual void Update(
            string name, string avatar,
            DefinitionValue availabilityDefinition,
            DefinitionValue latencyDefinition,
            DefinitionValue experienceDefinition,
            DateTime on, string modifiedBy,
            string tags, string description, decimal percentile)
        {
            this.Name   = string.IsNullOrWhiteSpace(name) ? this.Name : name;
            this.Avatar = string.IsNullOrWhiteSpace(avatar) ? this.Avatar : avatar;

            this.GoodDefinitionAvailability  = availabilityDefinition.GetGoodDefinition(this.GoodDefinitionAvailability);
            this.TotalDefinitionAvailability = availabilityDefinition.GetTotalDefinition(this.TotalDefinitionAvailability);

            this.GoodDefinitionLatency  = latencyDefinition.GetGoodDefinition(this.GoodDefinitionAvailability);
            this.TotalDefinitionLatency = latencyDefinition.GetTotalDefinition(this.TotalDefinitionAvailability);

            this.GoodDefinitionExperience  = experienceDefinition.GetGoodDefinition(this.GoodDefinitionAvailability);
            this.TotalDefinitionExperience = experienceDefinition.GetTotalDefinition(this.TotalDefinitionAvailability);

            this.Description = string.IsNullOrWhiteSpace(description) ? this.Description : description;
            this.ModifiedOn  = on;
            this.Percentile  = percentile;
            this.Tags        = tags ?? this.Tags;
            this.ModifiedBy  = modifiedBy;
        }