Beispiel #1
0
        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));
        }
Beispiel #2
0
 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));
 }
Beispiel #3
0
 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));
 }
Beispiel #4
0
        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));
            }
        }
Beispiel #5
0
        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);
            }
        }
Beispiel #6
0
 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));
 }
Beispiel #7
0
 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));
 }
Beispiel #8
0
        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));
        }