public async Task <SimsStakeholder> Update(SimsStakeholder stakeholder) { if (stakeholder.Id == 0) { throw new ArgumentOutOfRangeException("stakeholder missing"); } //if (stakeholder.HostId == 0) throw new IncidentMissingException("Incident Id Missing"); //var isClosed = await this.IsClosed(stakeholder.HostId); //if (isClosed) throw new IncidentClosedException("Incident is closed"); //if (stakeholder.Id == 0) throw new SIMSException("Stakeholder must exist."); //if (stakeholder.AddressId.HasValue && stakeholder.DiscriminatorId == (int)StakeholderTypes.FSA) // throw new SIMSException("FSA Stakeholder must not have an address"); var dbItem = this.DbSet.Find(stakeholder.Id); //stakeholder.ToUpdateDb(dbItem); mapper.Map(stakeholder, dbItem); //var dbEnt = ctx.Stakeholders.Update(dbItem); await ctx.SaveChangesAsync(); return(mapper.Map <T, SimsStakeholder>(dbItem)); }
public Task <SimsStakeholder> Add(int hostId, SimsStakeholder stakeHolder) { if (stakeHolder.DiscriminatorId == (int)SimsStakeholderAddressTypes.FSA && stakeHolder.AddressId > 0) { throw new SIMSException("FSA Member cannot have an address assigned"); } if (stakeHolder.AddressId == 0) { stakeHolder.AddressId = null; } return(dbHost.Incidents.Stakeholders.Add(hostId, stakeHolder)); }
public async Task <SimsStakeholder> Add(int hostId, SimsStakeholder SimsStakeholder) { if (await dbHost.OnlineForms.IsClosed(hostId)) { throw new SimsOnlineFormClosedException("OnlineForm closed."); } if (SimsStakeholder.DiscriminatorId == (int)SimsStakeholderAddressTypes.FSA && SimsStakeholder.AddressId > 0) { throw new SIMSException("FSA Member cannot have an address assigned"); } if (SimsStakeholder.AddressId == 0) { SimsStakeholder.AddressId = null; } return(await this.dbHost.OnlineForms.Stakeholders.Add(hostId, SimsStakeholder)); }
public async Task AddStakeholderNoSignal() { var newStakeHolder = new SimsStakeholder { DiscriminatorId = 3, Name = "Pickle pie", GovDept = "Crusty", Phone = "012345 789", Role = "Dancing instructor" }; using (var ctx = SeedingConfigData.GetDbContext(this.conn)) { var simsApp = SimsDbHost.CreateHost(ctx, mapper, this.userId); await Assert.ThrowsAnyAsync <Exception>(async() => await simsApp.Signals.Stakeholders.Add(0, newStakeHolder)); } }
public async Task AddStakeholder() { var newStakeHolder = new SimsStakeholder { DiscriminatorId = 3, HostId = 17, Name = "Pickle pie", GovDept = "Crusty", Phone = "012345 789", Role = "Dancing instructor" }; using (var ctx = SeedingConfigData.GetDbContext(this.conn)) { var simsApp = SimsDbHost.CreateHost(ctx, mapper, this.userId); var createdStakeHolder = await simsApp.Signals.Stakeholders.Add(newStakeHolder.HostId, newStakeHolder); Assert.True(createdStakeHolder.Name == newStakeHolder.Name && createdStakeHolder.HostId == 17); } }
public async Task <SimsStakeholder> Update(SimsStakeholder stakeHolder) { if (stakeHolder.AddressId == 0) { stakeHolder.AddressId = null; } if (stakeHolder.DiscriminatorId == (int)SimsStakeholderAddressTypes.FSA && stakeHolder.AddressId > 0) { throw new SIMSException("FSA Member cannot have an address assigned"); } if (stakeHolder.Id == 0) { throw new SimsItemMissing("Stakeholder id missing"); } if (stakeHolder.HostId == 0) { throw new SimsIncidentMissingException("Signal id missing"); } return(await this.dbHost.Incidents.Stakeholders.Update(stakeHolder)); }
public async Task <SimsStakeholder> Update(SimsStakeholder stakeHolder) { if (stakeHolder.AddressId == 0) { stakeHolder.AddressId = null; } if (stakeHolder.HostId == 0) { throw new SimsOnlineFormMissingException("OnlineForm id missing"); } if (await dbHost.OnlineForms.IsClosed(stakeHolder.HostId)) { throw new SimsOnlineFormClosedException("OnlineForm closed."); } if (stakeHolder.Id == 0) { throw new SimsItemMissing("Stakeholder id missing"); } return(await this.dbHost.OnlineForms.Stakeholders.Update(stakeHolder)); }
public async Task <SimsStakeholder> Add(int hostId, SimsStakeholder stakeholder) { if (hostId == 0) { throw new ArgumentOutOfRangeException("Host Id missing."); } if (stakeholder.Id > 0) { throw new ArgumentException("Stakeholder already exists."); } // Cannot add an FSA member with an address, this is an application error. stakeholder.HostId = hostId; var toDb = mapper.Map <SimsStakeholder, T>(stakeholder); var dbItem = this.DbSet.Add(toDb); await ctx.SaveChangesAsync(); return(this.mapper.Map <T, SimsStakeholder>(dbItem.Entity)); }