Example #1
0
        public ExecutingAgencyLookupItem CreateNewExecutingAgency(participatingorg org, string userId)
        {
            ExecutingAgencyLookupItem returnAgency = null;

            if (org.ExecutingAgencyTypeId == (int)ExecutingAgencyType.DP)
            {
                //http://iatistandard.org/202/codelists/OrganisationType/

                var fundsourceCategory = GetOtherFundSourceCategory(userId);
                var cur = dbContext.tblCurrencies.FirstOrDefault(f => f.IATICode == "USD");

                var ent = dbContext.tblFundSources.FirstOrDefault(f => f.FundSourceName == org.Name || f.IATICode == org.@ref);
                if (ent == null)
                {
                    ent = new tblFundSource
                    {
                        FundSourceCategoryId = fundsourceCategory.Id,
                        CurrencyId = cur.Id,
                        FundSourceName = org.Name,
                        IATICode = org.@ref,
                        IDate = DateTime.Now,
                        IUser = userId,

                    };
                    dbContext.tblFundSources.Add(ent);
                    dbContext.SaveChanges();
                }


                returnAgency = new ExecutingAgencyLookupItem
                {
                    ExecutingAgencyTypeId = (int)ExecutingAgencyType.DP,
                    ExecutingAgencyOrganizationTypeId = ent.FundSourceCategoryId,
                    ExecutingAgencyOrganizationId = ent.Id,
                    Name = ent.FundSourceName,
                };

            }
            else if (org.ExecutingAgencyTypeId == (int)ExecutingAgencyType.Government)
            {
                tblMinistry ministry = GetNAMinistry(userId);

                var ent = dbContext.tblMinistryAgencies.FirstOrDefault(f => f.AgencyName == org.Name);
                if (ent == null)
                {
                    ent = new tblMinistryAgency
                    {
                        MinistryId = ministry.Id,
                        AgencyName = org.Name,

                        IDate = DateTime.Now,
                        IUser = userId,

                    };
                    dbContext.tblMinistryAgencies.Add(ent);
                    dbContext.SaveChanges();
                }


                returnAgency = new ExecutingAgencyLookupItem
                {
                    ExecutingAgencyTypeId = (int)ExecutingAgencyType.Government,
                    ExecutingAgencyOrganizationTypeId = ent.MinistryId,
                    ExecutingAgencyOrganizationId = ent.Id,
                    Name = ent.AgencyName,
                };

            }
            else if (org.ExecutingAgencyTypeId == (int)ExecutingAgencyType.NGO)
            {
                var ent = dbContext.tblNGOCSOes.FirstOrDefault(f => f.NGOOrganizationName == org.Name);
                if (ent == null)
                {
                    ent = new tblNGOCSO
                    {
                        NGOOrganizationName = org.Name,
                        NGOOrganizationTypeId = dbContext.tblNGOOrganizationTypes.FirstOrDefault().Id,

                        IUser = userId,
                        IDate = DateTime.Now
                    };

                    dbContext.tblNGOCSOes.Add(ent);
                    dbContext.SaveChanges();
                }


                returnAgency = new ExecutingAgencyLookupItem
                {
                    ExecutingAgencyTypeId = (int)ExecutingAgencyType.NGO,
                    ExecutingAgencyOrganizationTypeId = ent.NGOOrganizationTypeId,
                    ExecutingAgencyOrganizationId = ent.Id,
                    Name = ent.NGOOrganizationName,
                };

            }


            return returnAgency;
        }