コード例 #1
0
        public async Task DeletePosReason(int id)
        {
            var posReason = await _repository.FindAsync <PosReason>(id);

            if (posReason != null)
            {
                await _repository.DeleteAsync(posReason);
            }
        }
コード例 #2
0
        public async Task <GetAdmSchoolGroupResponse> GetAdmSchoolGroup(int id)
        {
            var admSchoolGroup = await _repository.FindAsync <AdmSchoolGroup>(id);

            var admGlobalOption = await _repository.GetAsync <AdmGlobalOption>(x => true); //should be only one

            var result = _autoMapper.Map <GetAdmSchoolGroupResponse>(admSchoolGroup);

            result.ShowCEP = admGlobalOption.CEPSchoolOption == CEPSchoolOption.SchoolGroups;

            return(result);
        }
コード例 #3
0
        public async Task <GetReplyMessageResponse> ReplyMessage(int admMessageId)
        {
            //Create MessageDetailsModel object
            GetReplyMessageResponse model = new GetReplyMessageResponse();

            //Create a list object of type int
            List <int> userIDsList = new List <int>();

            //Create a list object of type string
            List <string> userNamesList = new List <string>();

            //Make call to repo to get the AdmMessageDetail object by ID
            var message = await _repository.FindAsync <AdmMessagesDetail>(admMessageId);

            //Check to see if the object is not null
            if (message != null)
            {
                //Get the AdmMessageId and store into the request
                model.AdmMessageId = message.AdmMessageID;

                //Add the AdmUserID to the List of Int (userIDsList)
                userIDsList.Add(message.AdmUser.AdmUserID);

                //Add the First and Last Name of the Adm User
                userNamesList.Add(message.AdmUser.FirstName + " " + message.AdmUser.LastName);

                //Checks Message Recipients to ensure it's not null and that there are recipients
                if (message.AdmMessage.Recipients != null && message.AdmMessage.Recipients.Any())
                {
                    //Loops through AdmUser object and adds the AdmUserID to the userIDsList
                    //Also adds the First Name and Last Name  to the userNamesList
                    foreach (var user in message.AdmMessage.Recipients)
                    {
                        userIDsList.Add(user.AdmUserID);
                        userNamesList.Add(user.FirstName + " " + user.LastName);
                    }
                }
            }

            model.UserIDs   = String.Join(",", userIDsList);
            model.UserNames = String.Join(", ", userNamesList);

            //Ensures the message isn't null and adds the MessageText to the request
            if (message != null)
            {
                model.Message = RemoveHtmlTags(message.MesageText);
            }
            return(model);
        }
コード例 #4
0
        public async Task SaveAdmManagementLevels(IEnumerable <AdmManagementLevelSaveModel> requestItems)
        {
            var existingIds = new List <int>();

            foreach (var item in requestItems)
            {
                //update
                if (item.AdmManagementLevelID != 0)
                {
                    existingIds.Add(item.AdmManagementLevelID);
                    var existingAdmManagementLevel = await _repository.FindAsync <AdmManagementLevel>(item.AdmManagementLevelID);

                    if (existingAdmManagementLevel != null)
                    {
                        existingAdmManagementLevel.Description          = item.Description;
                        existingAdmManagementLevel.ManagementLevelOrder = item.ManagementLevelOrder;
                        await _repository.UpdateAsync(existingAdmManagementLevel);
                    }
                }
                //insert
                else
                {
                    var newAdmManagementLevel = _autoMapper.Map <AdmManagementLevel>(item);
                    await _repository.CreateAsync(newAdmManagementLevel);
                }
            }

            //delete
            var deletedItems = await _repository.GetListAsync <AdmManagementLevel>(x => !existingIds.Contains(x.AdmManagementLevelID));

            await _repository.DeleteAsync(deletedItems);
        }
コード例 #5
0
        public async Task <List <int> > SaveAccP2Rates(IEnumerable <AccP2RateSaveModel> requestItems)
        {
            var idCollection = new List <int>();

            foreach (var accP2RateSaveModel in requestItems)
            {
                if (accP2RateSaveModel.IsBreakfastOnly)
                {
                    accP2RateSaveModel.LUFreeRate    = 0;
                    accP2RateSaveModel.LUReducedRate = 0;
                    accP2RateSaveModel.LUFullPayRate = 0;
                }

                var admOptions = await _repository.GetAsync <AdmSitesOption>(x => x.AdmSiteID == accP2RateSaveModel.AdmSiteID);

                var accP2Rate = await _repository.FindAsync <AccP2Rates>(accP2RateSaveModel.AccP2RateID) ?? new AccP2Rates();

                accP2Rate = _autoMapper.Map(accP2RateSaveModel, accP2Rate);

                //audit fields CreatedBy, ModifiedDate etc. should be set in a generic place, not each place we use repo for create/update
                if (accP2RateSaveModel.AccP2RateID == 0)
                {
                    accP2Rate.EffectiveDate = DateTime.Parse($"7/1/{admOptions?.BaseYearStart ?? DateTime.Now.Year}");
                    await _repository.CreateAsync(accP2Rate);
                }
                else
                {
                    await _repository.UpdateAsync(accP2Rate);
                }

                idCollection.Add(accP2Rate.AccP2RateID);
            }

            return(idCollection);
        }
コード例 #6
0
        public async Task <List <MenCnResultsDetailModel> > GetImportResultsDetails(int menCnResultsHeaderID)
        {
            var menCnResultsHeader = await _repository.FindAsync <MenCnResultsHeader>(menCnResultsHeaderID);

            var menCnResultsDetails = menCnResultsHeader.MenCnResultsDetail.OrderByDescending(x => x.MenCnResultsDetailID);

            return(_autoMapper.Map <List <MenCnResultsDetailModel> >(menCnResultsDetails));
        }
コード例 #7
0
        public async Task <bool> DeleteServingPeriods(int id)
        {
            if (id == 0)
            {
                return(false);
            }
            await _repository.DeleteAsync(await _repository.FindAsync <AdmServingPeriod>(id));

            return(true);
        }
コード例 #8
0
        public async Task <SaveYearEndProcessSetupResponse> SaveYearEndProcessSetup(SaveYearEndProcessSetupRequest request)
        {
            var      newOptions = new AdmYearEndProcessOptions();
            DateTime today      = _repository.GetSchoolNow(request.AdmUserId);

            if (request.DefaultTempStatusExpDate == null)
            {
                request.DefaultTempStatusExpDate = today.ToUsDateString();
            }

            var options =
                await _repository.GetListAsync <AdmYearEndProcessOptions>(o => o.OptionsForTheYear == request.OptionsForTheYear);

            if (options.Any())
            {
                newOptions = await _repository.FindAsync <AdmYearEndProcessOptions>(request.OptionsForTheYear);

                _autoMapper.Map(request, newOptions);
                InitNewOption(request, newOptions, today);
                newOptions = _repository.Update(newOptions);
            }
            else
            {
                _autoMapper.Map(request, newOptions);
                InitNewOption(request, newOptions, today);
                newOptions = _repository.Create <AdmYearEndProcessOptions>(newOptions);
            }

            await UpdateSchoolDates(request.DefaultStartDate, request.DefaultEndDate, request.DefaultTempStatusExpDate);

            var farOptions = (await _repository.GetListAsync <FarOption>()).FirstOrDefault();

            if (farOptions != null)
            {
                farOptions.StartingAppNumber = request.StartingAppNumber;
                farOptions = await _repository.UpdateAsync(farOptions);
            }

            return(_autoMapper.Map <SaveYearEndProcessSetupResponse>(request));
        }
コード例 #9
0
        private async Task SaveCustomDisclosures(ICollection <FroCustomizationSaveModel> requestCustomizations)
        {
            // save the disclaimer actives
            foreach (var saveModel in requestCustomizations)
            {
                var custom = await _repository.FindAsync <FroCustomization>(saveModel.FroCustomizationID);

                // should technically always find this, but just in case
                if (custom != null)
                {
                    // only update if there was a change
                    if (custom.IsActive != saveModel.IsActive)
                    {
                        custom.IsActive = saveModel.IsActive;
                        await _repository.UpdateAsync(custom);
                    }
                }
            }
        }
コード例 #10
0
        public async Task <PutIntegrationMapsResponse> SaveIntegrationMap(PutIntegrationMapsRequest request)
        {
            var map = request.AdmIntegrationMapID != 0
                ? await _repository.FindAsync <AdmIntegrationMap>(request.AdmIntegrationMapID)
                : new AdmIntegrationMap();

            if (map == null)
            {
                Debug.WriteLine($"Integration map not found in database. Id: {request.AdmIntegrationMapID}");
                throw new ApplicationException($"{request.AdmIntegrationMapID} integration map not found");
            }

            var response = new PutIntegrationMapsResponse();

            //automapper can handle all this stuff, however without proper testing I will just follow the old logic
            MapKnownFields(map, request);

            if (request.DeletePreviewFile && map.PreviewFile != null)
            {
                _repository.MarkForDeletion(map.PreviewFile);
            }

            await ProcessTriageFile(map, request);

            if (request.Columns != null && request.Columns.Any())
            {
                ProcessColumns(map, request.Columns, request.UseHeaderDetail);
            }

            if (map.AdmIntegrationMapID == 0)
            {
                await _repository.CreateAsync(map);
            }
            else
            {
                await _repository.UpdateAsync(map);
            }

            response.IntegrationMapId = map.AdmIntegrationMapID;
            return(response);
        }
コード例 #11
0
        public async Task <GetIntegrationJobDetailsResponse> GetIntegrationJobDetails(GetIntegrationJobDetailsRequest request)
        {
            GetIntegrationJobDetailsResponse model;
            AdmIntegrationJob job = null;

            switch (request.JobId)
            {
            case 0:     // find first
                var view = await _repository.GetAsync <AppView>(v => v.AppObjectID == "Integration" && v.ViewName == "Index");

                if (view != null)
                {
                    var pref = (await _repository.GetListAsync <AppViewsAdmUsersPreference>(p => p.AdmUserID == request.CurrentAdmUserId &&
                                                                                            p.AppViewID == view.AppViewID))
                               .FirstOrDefault();
                    if (pref?.LastViewedID != null)
                    {
                        request.JobId = pref.LastViewedID.Value;
                    }
                }

                if (request.JobId != 0)
                {
                    job = (await _repository.GetListAsync <AdmIntegrationJob>(j => j.AdmIntegrationJobID == request.JobId && !j.IsDeleted))
                          .FirstOrDefault();
                }

                if (job == null)
                {
                    job = (await _repository.GetListAsync <AdmIntegrationJob>())
                          .OrderBy(o => o.Name)
                          .FirstOrDefault(o => !o.IsDeleted);
                }

                break;

            case -1:     //new one
                break;

            default:
                job = await _repository.FindAsync <AdmIntegrationJob>(request.JobId);
                await SaveUserLastViewed(request.JobId, request.CurrentAdmUserId);

                break;
            }

            if (job == null)
            {
                model = new GetIntegrationJobDetailsResponse()
                {
                    JobName        = "",
                    JobDescription = "",
                    TaskModel      = new AdmScheduledTaskItem(),
                    IsImport       = request.IsImport.HasValue && request.IsImport.Value,
                    MapType        = (int)GetMapType(request.MapTypeName),
                    GradeSchoolChangeThreshhold = 10,
                    CNIPsVendorNumber           = "",
                    CNIPsCDSNumber     = "",
                    CNIPsLicenseNumber = "",
                    CNIPsSponsor       = "",
                    CNIPsID            = ""
                };
            }
            else
            {
                model                    = _autoMapper.Map <GetIntegrationJobDetailsResponse>(job);
                model.JobName            = job.Name;
                model.JobDescription     = job.Description;
                model.IsImport           = job.AdmIntegrationMap.IsImport;
                model.JobCriteriaColumns = BuildJobCriteriaColumns(job);
                // krp 2do  - does this work? without recalling the db to populate the AdmIntegrationMap
                model.MapType = job.AdmIntegrationMap.MapType; // GetImportType(job.AdmIntegrationMapID)
                model         = await UpdateModelWithCniPs(model);

                model.TaskModel = new AdmScheduledTaskItem();

                var sched = await _repository.GetAsync <AdmScheduledTask>(t => t.AdmIntegrationJobID == job.AdmIntegrationJobID);

                if (sched != null)
                {
                    model.TaskModel = _autoMapper.Map <AdmScheduledTaskItem>(sched);
                    if (sched.StartTime.HasValue)
                    {
                        model.TaskModel.StartTime =
                            new DateTime(((TimeSpan)sched.StartTime).Ticks);
                    }
                }
            }

            var integrationMaps =
                await _repository.GetListAsync <AdmIntegrationMap>(q =>
                                                                   q.MapType == model.MapType && q.IsImport == model.IsImport);

            model.Maps = _autoMapper.Map <Collection <IntegrationMapItem> >(integrationMaps);

            if (model.Maps.Count == 0 && model.AdmIntegrationMapID == 0 &&
                (model.MapType == (int)IntegrationMapType.Gordon_Foods_Order_Export) ||
                (model.MapType == (int)IntegrationMapType.CNIPs))
            {
                var map = await GetNewMap(model.MapType);

                model.Maps.Add(_autoMapper.Map <IntegrationMapItem>(map));
            }
            return(model);
        }
コード例 #12
0
        public async Task SaveSchoolsInformation(PutSchoolsInformationRequest model)
        {
            var validations = await ValidateSchoolData(model);

            if (!validations.Any())
            {
                if (model.AdmSiteId != 0)
                {
                    var site = await _repo.FindAsync <AdmSite>(model.AdmSiteId);

                    site.SiteID               = model.SiteId;
                    site.SiteDescription      = model.SiteDescription;
                    site.AdmManagementLevelID = model.AdmManagementLevelId;
                    site.ParentAdmSiteID      = model.ParentAdmSiteId;
                    site.InvSiteTypeID        = model.InvSiteTypeId;
                    site.State                = model.State;
                    site.IsDistrict           = model.IsDistrict;
                    site.IsActive             = model.IsActive;
                    site.MenAgeGroupID        = model.MenAgeGroupID;
                    site.Address1             = model.Address1;
                    site.Address2             = model.Address2;
                    site.City                 = model.City;
                    site.ZipCode              = model.ZipCode;
                    site.SchoolPhoneNumber    = model.SchoolPhoneNumber;
                    site.PrincipalPhoneNumber = model.ManagerPhoneNumber;
                    site.PrincipalName        = model.ManagerName;
                    site.PrincipalEmail       = model.ManagerEmail;
                    if (string.IsNullOrWhiteSpace(model.AccLockoutDate))
                    {
                        DateTime schoolStartDate = model.Calendar.SchoolStartDate.ParseUsDate() ?? DateTime.MinValue;
                        site.AccLockoutDate = schoolStartDate;
                    }
                    else
                    {
                        site.AccLockoutDate = model.AccLockoutDate.ParseUsDate();
                    }

                    // Create or Update the Site Options
                    if (site.AdmSitesOption == null)
                    {
                        var options = new AdmSitesOption
                        {
                            AdmSiteID         = model.AdmSiteId,
                            SchoolStartDate   = model.Calendar.SchoolStartDate.ParseUsDate(),
                            IsYearRoundSchool = model.Calendar.IsYearRoundSchool
                        };
                        site.AdmSitesOption = options;
                    }
                    else
                    {
                        site.AdmSitesOption.SchoolStartDate   = model.Calendar.SchoolStartDate.ParseUsDate();
                        site.AdmSitesOption.IsYearRoundSchool = model.Calendar.IsYearRoundSchool;
                        if (model.Calendar.IsYearRoundSchool == false)
                        {
                            site.AdmSitesOption.SchoolAltStartDate      = null;
                            site.AdmSitesOption.SchoolTempStatusExpDate = null;
                            site.AdmSitesOption.SchoolStartDate         = model.Calendar.SchoolStartDate.ParseUsDate();
                        }
                    }
                    //PMM 9/21/15
                    site.AdmSitesOption.IsClaimChildSitesSeparately = model.SiteOptions.IsClaimChildSitesSeparately;
                    site.AdmSitesOption.IsRefundAllowed             = model.SiteOptions.IsRefundAllowed;
                    site.AdmSitesOption.SiteAttendanceFactor        = model.SiteOptions.SiteAttendanceFactor;
                    site.AdmSitesOption.IsCEP = model.SiteOptions.IsCEP;
                    site.AdmSitesOption.IsDontInactivateMissingStudent = model.SiteOptions.IsDontInactivateMissingStudent;
                    site.AdmSitesOption.IsSevereNeed = model.SiteOptions.IsSevereNeed;

                    //AMH SLN-3147 Provision 2 settings
                    site.AdmSitesOption.IsProvisionSite    = model.SiteOptions.IsProvisionSite;
                    site.AdmSitesOption.BaseYearStart      = model.SiteOptions.BaseYearStart;
                    site.AdmSitesOption.BaseYearEnrollment = model.SiteOptions.BaseYearEnrollment;
                    site.AdmSitesOption.BaseYearFree       = model.SiteOptions.BaseYearFree;
                    site.AdmSitesOption.BaseYearReduced    = model.SiteOptions.BaseYearReduced;

                    //time zone
                    await SaveCentralOfficeTimeZone(model.COTimeZoneName);

                    site.AdmSitesOption.TimeZoneName = model.TimeZoneName;

                    //AMH S-03093 if CW, create InvVendor for the CW
                    if (site.AdmSitesOption.IsWarehouse)
                    {
                        InvVendors cwVendor = await _repo.GetAsync <InvVendors>(v => v.AdmSiteID == model.AdmSiteId);

                        cwVendor.Name         = site.SiteDescription;
                        cwVendor.Active       = site.IsActive;
                        cwVendor.VendorNumber = site.SiteID;
                        cwVendor.Address      = site.Address1;
                        cwVendor.Address2     = site.Address2;
                        cwVendor.City         = site.City;
                        cwVendor.State        = site.State;
                        cwVendor.ZipCode      = site.ZipCode;
                        cwVendor.PhoneNumber  = site.PrincipalPhoneNumber;
                        cwVendor.Email        = site.PrincipalEmail;
                        await _repo.UpdateAsync <InvVendors>(cwVendor);
                    }

                    // Create or Update the Site PIN Configuration
                    AdmSitesPINConfiguration pinConfig = site.AdmSitesPINConfiguration;
                    if (pinConfig == null)
                    {
                        pinConfig = new AdmSitesPINConfiguration {
                            AdmSiteID = model.AdmSiteId
                        };
                    }


                    pinConfig.PINLength                  = model.PinConfiguration.PINLength;
                    pinConfig.PadPINWithZeros            = model.PinConfiguration.PadPINWithZeros;
                    pinConfig.StudentRandomlyGeneratePIN = model.PinConfiguration.StudentRandomlyGeneratePIN;
                    pinConfig.StudentIsLeftOfID          = model.PinConfiguration.StudentIsLeftOfId;
                    pinConfig.StudentLeftOfID            = model.PinConfiguration.StudentLeftOfId;
                    pinConfig.StudentRightOfID           = model.PinConfiguration.StudentRightOfId;
                    pinConfig.StudentAppendToPIN         = model.PinConfiguration.StudentAppendToPIN;
                    pinConfig.StudentPreventLeadingZeros = model.PinConfiguration.StudentPreventLeadingZeros;
                    pinConfig.StudentAppendPosition      = model.PinConfiguration.StudentAppendPosition;
                    pinConfig.StudentAppendText          = model.PinConfiguration.StudentAppendText;
                    pinConfig.UseAdultSettings           = model.PinConfiguration.UseAdultSettings;

                    if (model.PinConfiguration.UseAdultSettings)
                    {
                        pinConfig.AdultRandomlyGeneratePIN = model.PinConfiguration.StudentRandomlyGeneratePIN;
                        pinConfig.AdultIsLeftOfID          = model.PinConfiguration.StudentIsLeftOfId;
                        pinConfig.AdultLeftOfID            = model.PinConfiguration.StudentLeftOfId;
                        pinConfig.AdultRightOfID           = model.PinConfiguration.StudentRightOfId;
                        pinConfig.AdultAppendToPIN         = model.PinConfiguration.StudentAppendToPIN;
                        pinConfig.AdultPreventLeadingZeros = model.PinConfiguration.StudentPreventLeadingZeros;
                        pinConfig.AdultAppendPosition      = model.PinConfiguration.StudentAppendPosition;
                        pinConfig.AdultAppendText          = model.PinConfiguration.StudentAppendText;
                    }
                    else
                    {
                        pinConfig.AdultRandomlyGeneratePIN = model.PinConfiguration.AdultRandomlyGeneratePIN;
                        pinConfig.AdultIsLeftOfID          = model.PinConfiguration.AdultIsLeftOfId;
                        pinConfig.AdultLeftOfID            = model.PinConfiguration.AdultLeftOfId;
                        pinConfig.AdultRightOfID           = model.PinConfiguration.AdultRightOfId;
                        pinConfig.AdultAppendToPIN         = model.PinConfiguration.AdultAppendToPIN;
                        pinConfig.AdultPreventLeadingZeros = model.PinConfiguration.AdultPreventLeadingZeros;
                        pinConfig.AdultAppendPosition      = model.PinConfiguration.AdultAppendPosition;
                        pinConfig.AdultAppendText          = model.PinConfiguration.AdultAppendText;
                    }
                    site.AdmSitesPINConfiguration = pinConfig;

                    if (model.Terminals != null) //terminals collection deserialized in the validate method
                    {
                        foreach (var term in model.Terminals)
                        {
                            if (term.IsDeleted)
                            {
                                _repo.MarkForDeletion(term);
                            }
                            else
                            {
                                PosTerminal terminal;
                                if (term.PosTerminalId == 0)
                                {
                                    terminal = new PosTerminal();
                                    site.PosTerminals.Add(terminal);
                                }
                                else
                                {
                                    terminal = site.PosTerminals.FirstOrDefault(t => t.PosTerminalID == term.PosTerminalId);
                                }

                                if (terminal != null)
                                {
                                    terminal.MachineName    = term.MachineName.Trim();
                                    terminal.TerminalNumber = term.TerminalNumber;
                                    terminal.IsAutoSale     = term.IsAutoSale;
                                    terminal.IsActive       = term.IsActive;
                                }
                            }
                        }
                    }

                    site.AdmSitesServePOS.Clear();
                    model.ServingSites.ForEach(s => site.AdmSitesServePOS.Add(new AdmSitesServePOS()
                    {
                        AdmSiteID = s.AdmSiteId, OtherAdmSiteID = s.OtherAdmSiteId
                    }));

                    // set the customer number
                    site.CustomerNumber = model.CustomerNumber;

                    await _repo.UpdateAsync <AdmSite>(site);
                }
            }

            if (model.SiteOptions.IsCEP)
            {
                var admGlobalOptions = (await _repo.GetListAsync <AdmGlobalOption>()).FirstOrDefault();
                var claimOption      = -1;
                if (admGlobalOptions != null && (CEPSchoolOption.District == admGlobalOptions.CEPSchoolOption && model.IsDistrict))
                {
                    claimOption = 0;
                }
                else if (admGlobalOptions != null && ((CEPSchoolOption.Schools == admGlobalOptions.CEPSchoolOption || CEPSchoolOption.SchoolGroups == admGlobalOptions.CEPSchoolOption) && model.IsDistrict == false))
                {
                    claimOption = 1;
                }
                if (claimOption != -1)
                {
                    await PopulateAccCEPRates(claimOption, model.AdmSiteId, 0);
                }
            }
            else if (model.SiteOptions.IsProvisionSite)
            {
                var userInfo = await _repo.FindAsync <AdmUser>(model.AdmUserId);

                var createdBy = userInfo.FirstName + " " + userInfo.LastName;
                var exists    = (await _repo.GetListAsync <AccP2Rates>(w => w.AdmSiteID == model.AdmSiteId)).Any();
                if (exists == false)
                {
                    var        baseYear = "7/1/" + model.SiteOptions.BaseYearStart;
                    AccP2Rates claimPct = new AccP2Rates
                    {
                        AdmSiteID            = model.AdmSiteId,
                        IsBreakfastOnly      = false,
                        BRFreeRate           = 0,
                        BRReducedRate        = 0,
                        BRFullPayRate        = 0,
                        LUFreeRate           = 0,
                        LUReducedRate        = 0,
                        LUFullPayRate        = 0,
                        EffectiveDate        = DateTime.Parse(baseYear),
                        CreatedDateTime      = DateTime.Now,
                        CreatedBy            = createdBy,
                        LastModifiedDateTime = DateTime.Now,
                        LastModifiedBy       = createdBy
                    };
                    await _repo.CreateAsync <AccP2Rates>(claimPct);
                }
            }
        }
コード例 #13
0
        public async Task <int> SaveFeedingFigure(PostFeedingFiguresRequest request)
        {
            if (request.FeedingNumber != null)
            {
                request.FeedingNumber = Convert.ToInt32(request.FeedingNumber);
            }

            var figures = await _repo.FindAsync <AdmSitesFeedingFigure>(request.AdmSiteId);

            if (figures == null)
            {
                //insert
                AdmSitesFeedingFigure newFigures = new AdmSitesFeedingFigure {
                    AdmSiteID = request.AdmSiteId
                };
                switch (request.FeedingName)
                {
                case "Breakfast":
                    newFigures.Breakfast = request.FeedingNumber;
                    break;

                case "Lunch":
                    newFigures.Lunch = request.FeedingNumber;
                    break;

                case "Snack":
                    newFigures.Snack = request.FeedingNumber;
                    break;

                case "Supper":
                    newFigures.Supper = request.FeedingNumber;
                    break;
                }

                await _repo.CreateAsync(newFigures);

                return(newFigures.AdmSiteID);
            }
            else
            {
                //update
                switch (request.FeedingName)
                {
                case "Breakfast":
                    figures.Breakfast = request.FeedingNumber;
                    break;

                case "Lunch":
                    figures.Lunch = request.FeedingNumber;
                    break;

                case "Snack":
                    figures.Snack = request.FeedingNumber;
                    break;

                case "Supper":
                    figures.Supper = request.FeedingNumber;
                    break;
                }

                await _repo.UpdateAsync(figures);

                return(figures.AdmSiteID);
            }
        }