/// <summary>
        /// Save the program unit.
        /// </summary>
        /// <param name="programUnit">The program unit.</param>
        /// <returns></returns>
        public Response <ProgramUnitDetailsModel> SaveProgramUnit(ProgramUnitDetailsModel programUnit)
        {
            const string apiUrl = BaseRoute + "SaveProgramUnit";

            return(communicationManager.Post <ProgramUnitDetailsModel, Response <ProgramUnitDetailsModel> >(programUnit, apiUrl));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the program unit by identifier.
        /// </summary>
        /// <param name="programUnitID">The program unit identifier.</param>
        /// <returns></returns>
        public Response <ProgramUnitDetailsModel> GetProgramUnitByID(long programUnitID)
        {
            var programUnitResponse = new Response <ProgramUnitDetailsModel>()
            {
                DataItems  = new List <ProgramUnitDetailsModel>(),
                ResultCode = 0
            };

            var programUnitDetails = new ProgramUnitDetailsModel();

            var programUnit = _organizationStructureDataProvider.GetOrganizationStructureByID(programUnitID);

            if (programUnit.ResultCode != 0)
            {
                programUnitResponse.ResultCode    = programUnit.ResultCode;
                programUnitResponse.ResultMessage = programUnit.ResultMessage;
                return(programUnitResponse);
            }
            else
            {
                programUnitDetails.ProgramUnit = programUnit.DataItems.FirstOrDefault();
            }

            var reportingUnit = _organizationIdentifiersDataProvider.GetOrganizationIdentifiersByID(programUnitID, OrganizationType.ProgramUnit.ToString());

            if (reportingUnit.ResultCode != 0)
            {
                programUnitResponse.ResultCode    = reportingUnit.ResultCode;
                programUnitResponse.ResultMessage = reportingUnit.ResultMessage;
                return(programUnitResponse);
            }
            else
            {
                programUnitDetails.ReportingUnit = reportingUnit.DataItems.FirstOrDefault();
            }

            var programUnitAddresses = _organizationStructureDataProvider.GetOrganizationAddressByID(programUnitID);

            if (programUnitAddresses.ResultCode != 0)
            {
                programUnitResponse.ResultCode    = programUnitAddresses.ResultCode;
                programUnitResponse.ResultMessage = programUnitAddresses.ResultMessage;
                return(programUnitResponse);
            }
            else
            {
                programUnitDetails.Addresses = programUnitAddresses.DataItems;
            }

            var programUnitHierarchy = _organizationStructureDataProvider.GetOrganizationHierarchyByID(programUnitID, OrganizationType.ProgramUnit.ToString());

            if (programUnitHierarchy.ResultCode != 0)
            {
                programUnitResponse.ResultCode    = programUnitHierarchy.ResultCode;
                programUnitResponse.ResultMessage = programUnitHierarchy.ResultMessage;
                return(programUnitResponse);
            }
            else
            {
                programUnitDetails.ProgramUnitHierarchies = programUnitHierarchy.DataItems;
            }

            var programUnitServices = _organizationStructureDataProvider.GetServiceOrganizationDetailsByID(programUnitID);

            if (programUnitServices.ResultCode != 0)
            {
                programUnitResponse.ResultCode    = programUnitServices.ResultCode;
                programUnitResponse.ResultMessage = programUnitServices.ResultMessage;
                return(programUnitResponse);
            }
            else
            {
                programUnitDetails.ProgramUnitServices = programUnitServices.DataItems;
            }

            var programUnitServiceWorkflows = _organizationStructureDataProvider.GetOrganizationDetailsModuleComponentByDetailID(programUnitID);

            if (programUnitServiceWorkflows.ResultCode != 0)
            {
                programUnitResponse.ResultCode    = programUnitServiceWorkflows.ResultCode;
                programUnitResponse.ResultMessage = programUnitServiceWorkflows.ResultMessage;
                return(programUnitResponse);
            }
            else
            {
                programUnitDetails.ProgramUnitServiceWorkflows = programUnitServiceWorkflows.DataItems;
            }

            programUnitResponse.DataItems.Add(programUnitDetails);
            return(programUnitResponse);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Save the program unit.
        /// </summary>
        /// <param name="programUnit">The program unit.</param>
        /// <returns></returns>
        public Response <ProgramUnitDetailsModel> SaveProgramUnit(ProgramUnitDetailsModel programUnit)
        {
            var programUnitResponse = new Response <ProgramUnitDetailsModel>();

            using (var transactionScope = _unitOfWork.BeginTransactionScope())
            {
                var programUnitResult = new Response <OrganizationDetailsModel>();
                if (programUnit.ProgramUnit.DetailID > 0)
                {
                    programUnitResult = _organizationStructureDataProvider.UpdateOrganizationStructure(programUnit.ProgramUnit);
                }
                else
                {
                    programUnit.ProgramUnit.DataKey = OrganizationType.ProgramUnit.ToString();
                    programUnitResult = _organizationStructureDataProvider.AddOrganizationStructure(programUnit.ProgramUnit);
                    programUnit.ProgramUnit.DetailID = programUnitResult.ID;
                }

                programUnit.ReportingUnit.DetailID = programUnit.ProgramUnit.DetailID;

                programUnit.Addresses.ForEach(item =>
                {
                    item.DetailID = programUnit.ProgramUnit.DetailID;
                });
                programUnit.ProgramUnitHierarchies.ForEach(item =>
                {
                    item.ProgramUnitID = programUnit.ProgramUnit.DetailID;
                });
                programUnit.ProgramUnitServices.ForEach(item =>
                {
                    item.DetailID = programUnit.ProgramUnit.DetailID;
                });
                programUnit.ProgramUnitServiceWorkflows.ForEach(item =>
                {
                    item.DetailID = programUnit.ProgramUnit.DetailID;
                });

                // if program unit is failed to save
                if (programUnitResult.ResultCode != 0)
                {
                    programUnitResponse.ResultCode    = programUnitResult.ResultCode;
                    programUnitResponse.ResultMessage = programUnitResult.ResultMessage;
                    return(programUnitResponse);
                }

                var reportingUnitResult = _organizationIdentifiersDataProvider.SaveOrganizationIdentifiers(new List <OrganizationIdentifiersModel>()
                {
                    programUnit.ReportingUnit
                });
                // if reporting unit is failed to save
                if (reportingUnitResult.ResultCode != 0)
                {
                    programUnitResponse.ResultCode    = reportingUnitResult.ResultCode;
                    programUnitResponse.ResultMessage = reportingUnitResult.ResultMessage;
                    return(programUnitResponse);
                }

                var programUnitAddressResult = _organizationStructureDataProvider.SaveOrganizationAddress(programUnit.Addresses);
                // if program unit address is failed to save
                if (programUnitAddressResult.ResultCode != 0)
                {
                    programUnitResponse.ResultCode    = programUnitAddressResult.ResultCode;
                    programUnitResponse.ResultMessage = programUnitAddressResult.ResultMessage;
                    return(programUnitResponse);
                }

                var programUnitHierarchyResult = _organizationStructureDataProvider.SaveOrganizationHierarchy(programUnit.ProgramUnitHierarchies, OrganizationType.ProgramUnit.ToString());
                // if program unit hierarchy is failed to save
                if (programUnitHierarchyResult.ResultCode != 0)
                {
                    programUnitResponse.ResultCode    = programUnitHierarchyResult.ResultCode;
                    programUnitResponse.ResultMessage = programUnitHierarchyResult.ResultMessage;
                    return(programUnitResponse);
                }

                var programUnitServicesResult = _organizationStructureDataProvider.SaveServiceOrganization(programUnit.ProgramUnitServices);
                // if program unit services is failed to save
                if (programUnitServicesResult.ResultCode != 0)
                {
                    programUnitResponse.ResultCode    = programUnitServicesResult.ResultCode;
                    programUnitResponse.ResultMessage = programUnitServicesResult.ResultMessage;
                    return(programUnitResponse);
                }

                var programUnitServiceWorkflowsResult = _organizationStructureDataProvider.SaveOrganizationDetailsModuleComponent(programUnit.ProgramUnitServiceWorkflows);
                // if program unit service workflows is failed to save
                if (programUnitServiceWorkflowsResult.ResultCode != 0)
                {
                    programUnitResponse.ResultCode    = programUnitServiceWorkflowsResult.ResultCode;
                    programUnitResponse.ResultMessage = programUnitServiceWorkflowsResult.ResultMessage;
                    return(programUnitResponse);
                }

                if (!programUnit.ForceRollback.GetValueOrDefault(false))
                {
                    _unitOfWork.TransactionScopeComplete(transactionScope);
                }
            }

            return(programUnitResponse);
        }
Ejemplo n.º 4
0
 public IHttpActionResult SaveProgramUnit(ProgramUnitDetailsModel programUnit)
 {
     return(new HttpResult <Response <ProgramUnitDetailsModel> >(_programUnitsRuleEngine.SaveProgramUnit(programUnit), Request));
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Save the program unit.
 /// </summary>
 /// <param name="programUnit">The program unit.</param>
 /// <returns></returns>
 public Response <ProgramUnitDetailsModel> SaveProgramUnit(ProgramUnitDetailsModel programUnit)
 {
     return(_programUnitsRepository.SaveProgramUnit(programUnit));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Save the program unit.
 /// </summary>
 /// <param name="programUnit">The program unit.</param>
 /// <returns></returns>
 public Response <ProgramUnitDetailsModel> SaveProgramUnit(ProgramUnitDetailsModel programUnit)
 {
     return(_programUnitsService.SaveProgramUnit(programUnit));
 }