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