public async Task <bool> UploadProgramsAsync(List <SocialProgramModel> lstSocialPrograms)
        {
            //Set Id for each batch
            Guid guid = Guid.NewGuid();

            foreach (var item in lstSocialPrograms)
            {
                item.batch_id = guid.ToString();
            }

            //STEP 1 Insert file
            var result = await _receiveData.BulkSocialProgramsAsync(lstSocialPrograms);


            //STEP 2 Consult Elegibles
            if (result != 0)
            {
                foreach (var item in lstSocialPrograms)
                {
                    var response = ProcessEligibles(new ElegibleModel
                    {
                        id         = item.id,
                        first_name = item.first_name,
                        last_name  = item.last_name,
                        program    = item.program,
                        value      = item.value
                    });

                    item.is_Elegible = response.isElegible == false ? "N" : "S";

                    await _receiveData.UpdateSocialProgramAsync(item.id, item);
                }
            }

            //STEP 3 Run Rules
            foreach (var item in lstSocialPrograms)
            {
                var validation = RunRules(item, lstSocialPrograms);

                if (validation != "")
                {
                    item.rules_break = validation;

                    await _receiveData.UpdateSocialProgramRulesAsync(item.id, item);
                }
            }

            //STEP 4 Verify against Tresury
            var respose = await TresuryValidation();

            //STEP 5 Consolidate Payments
            if (respose)
            {
            }

            return(result == 0 ? false : true);
        }