Esempio n. 1
0
        /// <summary>
        /// Get year group details
        /// </summary>
        /// <param name="shortName"></param>
        /// <param name="sessionToken"></param>
        /// <returns></returns>
        private static DataEntityDTO getyearGroupDetails(string shortName, SecurityToken sessionToken)
        {
            //New Instance of DataExchangeQuery
            DataExchangeQuery dataExchangeQuery = new DataExchangeQuery();

            DataQuery yearGroupQuery = CreateStandardQuery("YearGroup", "dbo");

            yearGroupQuery.SelectedElements = new Dictionary <string, QuerySelectionElementBase>
            {
                { "YearGroup.ShortName", new QuerySelectionField {
                      SymbolName = "YearGroup.ShortName"
                  } }
            };
            yearGroupQuery.Filter = new AndExpression
            {
                Expressions = new List <object> {
                    new EqualsExpression
                    {
                        CurrentValue = new ParameterValue
                        {
                            SymbolName     = "YearGroup.ShortName",
                            SymbolTypeName = "iSIMS.Common.DataTypes.String"
                        },
                        TestValue = new InputParameterValue()
                        {
                            SymbolName     = "ShortName",
                            SymbolTypeName = typeof(string).FullName
                        }
                    }
                }
            };

            var parameters = new Dictionary <string, object>()
            {
                {
                    "ShortName", shortName
                }
            };

            DataEntityCollectionDTO yearGroupCollection = dataExchangeQuery.RetrieveEntityByQuery(yearGroupQuery, parameters, sessionToken);

            return(yearGroupCollection.DataEntityDtos.FirstOrDefault().Value);
        }
Esempio n. 2
0
        /// <summary>
        /// Get Learner Enrolment Status details
        /// </summary>
        /// <param name="enrolmentStatusCode"></param>
        /// <param name="sessionToken"></param>
        /// <returns></returns>
        private static DataEntityDTO getEnrolmentStatus(string enrolmentStatusCode, SecurityToken sessionToken)
        {
            //New Instance of DataExchangeQuery
            DataExchangeQuery dataExchangeQuery = new DataExchangeQuery();
            //Retrieve collection of Genders
            DataQuery enrolmentStatusQuery = CreateStandardQuery("EnrolmentStatus", "dbo");

            enrolmentStatusQuery.SelectedElements = new Dictionary <string, QuerySelectionElementBase>
            {
                { "EnrolmentStatus.Code", new QuerySelectionField {
                      SymbolName = "EnrolmentStatus.Code"
                  } }
            };
            enrolmentStatusQuery.Filter = new AndExpression
            {
                Expressions = new List <object> {
                    new EqualsExpression
                    {
                        CurrentValue = new ParameterValue
                        {
                            SymbolName     = "EnrolmentStatus.Code",
                            SymbolTypeName = "iSIMS.Common.DataTypes.String"
                        },
                        TestValue = new InputParameterValue
                        {
                            SymbolName     = "enrolmentStatusCode",
                            SymbolTypeName = typeof(string).FullName
                        }
                    }
                }
            };

            var parameters = new Dictionary <string, object>()
            {
                { "enrolmentStatusCode", enrolmentStatusCode }
            };

            DataEntityCollectionDTO enrolmentStatusCollection = dataExchangeQuery.RetrieveEntityByQuery(enrolmentStatusQuery, parameters, sessionToken);

            return(enrolmentStatusCollection.DataEntityDtos.FirstOrDefault().Value);
        }
Esempio n. 3
0
        /// <summary>
        /// Add pupil data with SEN details
        /// </summary>
        /// <param name="legalForename"></param>
        /// <param name="legalSurname"></param>
        /// <param name="dateOfBirth"></param>
        /// <param name="genderCode"></param>
        /// <param name="UPN"></param>
        /// <param name="admissionno"></param>
        /// <param name="startDate"></param>
        /// <param name="senStatusCode"></param>
        /// <param name="senNeedTypeCode"></param>
        /// <param name="rank"></param>
        /// <param name="leavingDate"></param>
        /// <returns></returns>
        public static Guid AddPupilWithSEN(string legalForename, string legalSurname, string dateOfBirth, string genderCode, string shortNameYearGroup, string UPN, string admissionno, string startDate, string senStatusCode, string senNeedTypeCode, int rank, string shortNameNCYear, string enrolmentStatusCode, string leavingDate = null)
        {
            //New Instance of DataExchangeQuery
            DataExchangeQuery dataExchangeQuery = new DataExchangeQuery();

            string sql      = "SELECT id FROM school WHERE Name ='" + TestDefaults.Default.SchoolName.Replace("'", "''") + "'";
            Guid   schoolid = DataAccessHelpers.GetValue <Guid>(sql);


            //Security Token
            SecurityToken sessionToken = dataExchangeQuery.Login(TestDefaults.Default.TestUser,
                                                                 TestDefaults.Default.TestUserPassword,
                                                                 schoolid.ToString(),
                                                                 TestDefaults.Default.TenantId.ToString(CultureInfo.InvariantCulture),
                                                                 Configuration.GetSutUrl() + TestDefaults.Default.ApplicationServerPath,
                                                                 Configuration.GetSutUrl() + TestDefaults.Default.SecurityServerPath);

            //create collection of Pupil Records
            DataEntityCollectionDTO pupilCollection = new DataEntityCollectionDTO();

            pupilCollection.DataEntityDtos = new Dictionary <int, DataEntityDTO>();
            pupilCollection.TopLevelDtoIDs = new List <int>();

            int pupilCollectionCount = pupilCollection.DataEntityDtos.Count;

            Guid pupilID                  = Guid.NewGuid();
            Guid learnerSENStatusID       = Guid.NewGuid();
            Guid learnerSENneedTypeID     = Guid.NewGuid();
            Guid learnerEnrolmentID       = Guid.NewGuid();
            Guid learnerNCyearID          = Guid.NewGuid();
            Guid learneryearID            = Guid.NewGuid();
            Guid learnerenrolmentStatusID = Guid.NewGuid();

            //get basic details to save pupil
            DataEntityDTO gender       = getGenderDetails(genderCode, sessionToken);
            DataEntityDTO schoolncyear = getSchoolNCyearDetails(shortNameNCYear, sessionToken);

            DataEntityDTO yeargroup = getyearGroupDetails(shortNameYearGroup, sessionToken);
            Guid          yeargroupguid;

            if (yeargroup == null)
            {
                string yeargroupQuery = "SELECT TOP 1 ID FROM dbo.yeargroup WHERE school = '" + schoolid + "'";
                yeargroupguid = DataAccessHelpers.GetValue <Guid>(yeargroupQuery);
            }
            else
            {
                yeargroupguid = yeargroup.ID;
            }
            DataEntityDTO SENStatus = getSENStatusDetails(senStatusCode, sessionToken);
            DataEntityDTO needType  = getNeedTypeDetails(senNeedTypeCode, sessionToken);
            DataEntityDTO learnerEnrolmentStatus = getEnrolmentStatus(enrolmentStatusCode, sessionToken);

            //Create the Pupil Record
            DataEntityDTO pupil = dataExchangeQuery.CreatePupil(pupilID,
                                                                legalForename,
                                                                legalSurname,
                                                                dateOfBirth,
                                                                gender.ID,
                                                                yeargroupguid,
                                                                UPN,
                                                                admissionno,
                                                                schoolid,
                                                                pupilCollectionCount,
                                                                pupilCollection.ExtensionData);

            //Add the Pupil Record to the collection
            pupilCollection.DataEntityDtos.Add(pupilCollectionCount, pupil);
            pupilCollection.TopLevelDtoIDs.Add(pupilCollectionCount);

            pupilCollectionCount = pupilCollection.DataEntityDtos.Count;

            DataEntityDTO enrolment = dataExchangeQuery.CreateLearnerEnrolment(learnerEnrolmentID,
                                                                               pupilID,
                                                                               startDate,
                                                                               leavingDate,
                                                                               schoolid,
                                                                               pupil.ReferenceID,
                                                                               pupilCollectionCount,
                                                                               pupilCollection.ExtensionData);

            //Add the enrolment Record to the collection
            pupilCollection.DataEntityDtos.Add(pupilCollectionCount, enrolment);
            pupilCollection.TopLevelDtoIDs.Add(pupilCollectionCount);

            //Add sen status and needtype as a reference property
            DataEntityDTO.ReferencePropertyDTO learnerEnrolmentProperty = new DataEntityDTO.ReferencePropertyDTO
            {
                EntityPrimaryKey    = learnerEnrolmentID,
                InternalReferenceID = (short?)pupilCollectionCount
            };


            pupilCollectionCount = pupilCollection.DataEntityDtos.Count;


            DataEntityDTO learnerEnrolmentStatusEntity = dataExchangeQuery.CreateLearnerEnrolmentStatus(learnerenrolmentStatusID,
                                                                                                        learnerEnrolmentID,
                                                                                                        learnerEnrolmentStatus.ID,
                                                                                                        startDate,
                                                                                                        leavingDate,
                                                                                                        pupil.ReferenceID,
                                                                                                        pupilCollectionCount,
                                                                                                        pupilCollection.ExtensionData);

            //Add the enrolment Record to the collection
            pupilCollection.DataEntityDtos.Add(pupilCollectionCount, learnerEnrolmentStatusEntity);
            pupilCollection.TopLevelDtoIDs.Add(pupilCollectionCount);

            //Add sen status and needtype as a reference property
            DataEntityDTO.ReferencePropertyDTO learnerEnrolmentStatusProperty = new DataEntityDTO.ReferencePropertyDTO
            {
                EntityPrimaryKey    = learnerenrolmentStatusID,
                InternalReferenceID = (short?)pupilCollectionCount
            };


            pupilCollectionCount = pupilCollection.DataEntityDtos.Count;


            //Create the learner year Record
            DataEntityDTO learnerYeargroup = dataExchangeQuery.CreateLearnerYearGroup(learneryearID,
                                                                                      pupilID,
                                                                                      startDate,
                                                                                      yeargroupguid,
                                                                                      pupil.ReferenceID,
                                                                                      pupilCollectionCount,
                                                                                      pupilCollection.ExtensionData);

            //Add the yeargroup Record to the collection
            pupilCollection.DataEntityDtos.Add(pupilCollectionCount, learnerYeargroup);
            pupilCollection.TopLevelDtoIDs.Add(pupilCollectionCount);


            DataEntityDTO.ReferencePropertyDTO learnerYearGroupProperty = new DataEntityDTO.ReferencePropertyDTO
            {
                EntityPrimaryKey    = learneryearID,
                InternalReferenceID = (short?)pupilCollectionCount
            };

            pupilCollectionCount = pupilCollection.DataEntityDtos.Count;

            //Create the pupil ncyear Record
            DataEntityDTO learnerncyear = dataExchangeQuery.CreateLearnerNCYear(learnerNCyearID,
                                                                                pupilID,
                                                                                startDate,
                                                                                schoolncyear.ID,
                                                                                pupil.ReferenceID,
                                                                                pupilCollectionCount,
                                                                                pupilCollection.ExtensionData);

            //Add the nc year Record to the collection
            pupilCollection.DataEntityDtos.Add(pupilCollectionCount, learnerncyear);
            pupilCollection.TopLevelDtoIDs.Add(pupilCollectionCount);

            //Add sen status and needtype as a reference property
            DataEntityDTO.ReferencePropertyDTO learnerNCYearProperty = new DataEntityDTO.ReferencePropertyDTO
            {
                EntityPrimaryKey    = learnerNCyearID,
                InternalReferenceID = (short?)pupilCollectionCount
            };


            pupilCollectionCount = pupilCollection.DataEntityDtos.Count;

            //Create the SENnStatus Record
            DataEntityDTO learnerSenStatus = dataExchangeQuery.CreateSENStatus(learnerSENStatusID,
                                                                               SENStatus.ID,
                                                                               startDate,
                                                                               pupilID,
                                                                               pupil.ReferenceID,
                                                                               pupilCollectionCount,
                                                                               pupilCollection.ExtensionData);

            //Add sen status and needtype as a reference property
            DataEntityDTO.ReferencePropertyDTO learnerSENStatusProperty = new DataEntityDTO.ReferencePropertyDTO
            {
                EntityPrimaryKey    = learnerSENStatusID,
                InternalReferenceID = (short?)pupilCollectionCount
            };

            //Add the SEN details to the collection
            pupilCollection.DataEntityDtos.Add(pupilCollectionCount, learnerSenStatus);
            pupilCollection.TopLevelDtoIDs.Add(pupilCollectionCount);

            pupilCollectionCount = pupilCollection.DataEntityDtos.Count;

            //Create the SEN need type
            DataEntityDTO learnerSenNeedType = dataExchangeQuery.CreateSENSNeed(learnerSENneedTypeID,
                                                                                needType.ID,
                                                                                rank,
                                                                                startDate,
                                                                                pupilID,
                                                                                pupil.ReferenceID,
                                                                                pupilCollectionCount,
                                                                                pupilCollection.ExtensionData);

            //Add the Service Record to the collection
            pupilCollection.DataEntityDtos.Add(pupilCollectionCount, learnerSenNeedType);
            pupilCollection.TopLevelDtoIDs.Add(pupilCollectionCount);

            DataEntityDTO.ReferencePropertyDTO learnerSENSNeedProperty = new DataEntityDTO.ReferencePropertyDTO
            {
                EntityPrimaryKey    = learnerSENneedTypeID,
                InternalReferenceID = (short?)pupilCollectionCount
            };

            DataEntityDTO.ReferencePropertyDTOArray learnerSENStatus = new DataEntityDTO.ReferencePropertyDTOArray
            {
                ReferenceProperties = new List <DataEntityDTO.ReferencePropertyDTO> {
                    learnerSENStatusProperty
                }
            };


            DataEntityDTO.ReferencePropertyDTOArray learnerNeedType = new DataEntityDTO.ReferencePropertyDTOArray
            {
                ReferenceProperties = new List <DataEntityDTO.ReferencePropertyDTO> {
                    learnerSENSNeedProperty
                }
            };

            DataEntityDTO.ReferencePropertyDTOArray enrolmentReference = new DataEntityDTO.ReferencePropertyDTOArray
            {
                ReferenceProperties = new List <DataEntityDTO.ReferencePropertyDTO> {
                    learnerEnrolmentProperty
                }
            };

            DataEntityDTO.ReferencePropertyDTOArray enrolmentStatusReference = new DataEntityDTO.ReferencePropertyDTOArray
            {
                ReferenceProperties = new List <DataEntityDTO.ReferencePropertyDTO> {
                    learnerEnrolmentStatusProperty
                }
            };


            DataEntityDTO.ReferencePropertyDTOArray ncyearReference = new DataEntityDTO.ReferencePropertyDTOArray
            {
                ReferenceProperties = new List <DataEntityDTO.ReferencePropertyDTO> {
                    learnerNCYearProperty
                }
            };

            DataEntityDTO.ReferencePropertyDTOArray yearReference = new DataEntityDTO.ReferencePropertyDTOArray
            {
                ReferenceProperties = new List <DataEntityDTO.ReferencePropertyDTO> {
                    learnerYearGroupProperty
                }
            };

            enrolment.Values.Add("MulitpleLearnerEnrolmentStatus", enrolmentStatusReference);

            //Add references in pupil entity
            pupil.Values.Add("LearnerEnrolments", enrolmentReference);
            //pupil.Values.Add("LearnerEnrolments.MulitpleLearnerEnrolmentStatus", enrolmentStatusReference);
            pupil.Values.Add("LearnerYearGroupMemberships", yearReference);
            pupil.Values.Add("LearnerNCYearMemberships", ncyearReference);
            pupil.Values.Add("LearnerSENStatuses", learnerSENStatus);
            pupil.Values.Add("LearnerSENNeedTypes", learnerNeedType);


            //Save Scope for Pupil
            List <string> pupilSaveScope = new List <string>
            {
                "Learner.ID",
                "Learner.LegalForename",
                "Learner.LegalSurname",
                "Learner.DateOfBirth",
                "Learner.Gender",
                "Learner.School",
                "Learner.AdmissionNumber",
                "Learner.UPN",
                "Learner.YearGroup",
                "Learner.LearnerEnrolments.DOA",
                "Learner.LearnerEnrolments.DOL",
                "Learner.LearnerEnrolments.School",
                "Learner.LearnerEnrolments.Learner",
                "Learner.LearnerEnrolments.MulitpleLearnerEnrolmentStatus.EnrolmentStatus",
                "Learner.LearnerEnrolments.MulitpleLearnerEnrolmentStatus.LearnerEnrolment",
                "Learner.LearnerEnrolments.MulitpleLearnerEnrolmentStatus.StartDate",
                "Learner.LearnerEnrolments.MulitpleLearnerEnrolmentStatus.EndDate",
                "Learner.LearnerYearGroupMemberships.StartDate",
                "Learner.LearnerYearGroupMemberships.Learner",
                "Learner.LearnerYearGroupMemberships.YearGroup",
                "Learner.LearnerNCYearMemberships.StartDate",
                "Learner.LearnerNCYearMemberships.Learner",
                "Learner.LearnerNCYearMemberships.SchoolNCYear",
                "Learner.LearnerSENStatuses.StartDate",
                "Learner.LearnerSENStatuses.Learner",
                "Learner.LearnerSENStatuses.SENStatus",
                "Learner.LearnerSENNeedTypes.NeedType",
                "Learner.LearnerSENNeedTypes.StartDate",
                "Learner.LearnerSENNeedTypes.Rank",
                "Learner.LearnerSENNeedTypes.Learner"
            };

            //Save the modified collection
            dataExchangeQuery.Save(pupilCollection, sessionToken, Configuration.GetSutUrl() + TestDefaults.Default.ApplicationServerPath, pupilSaveScope);

            return(pupilID);
        }
Esempio n. 4
0
        /// <summary>
        /// Get School NC year Details for pupil
        /// </summary>
        /// <param name="shortName"></param>
        /// <param name="sessionToken"></param>
        /// <returns></returns>
        private static DataEntityDTO getSchoolNCyearDetails(string shortName, SecurityToken sessionToken)
        {
            //New Instance of DataExchangeQuery
            DataExchangeQuery dataExchangeQuery = new DataExchangeQuery();

            DataQuery schoolNcYearQuery = CreateStandardQuery("SchoolNCYear", "dbo");

            schoolNcYearQuery.SelectedElements = new Dictionary <string, QuerySelectionElementBase>
            {
                { "SchoolNCYear.NCYear", new QuerySelectionField {
                      SymbolName = "SchoolNCYear.NCYear"
                  } }
            };
            schoolNcYearQuery.Filter = new AndExpression
            {
                Expressions = new List <object> {
                    new EqualsExpression
                    {
                        CurrentValue = new ParameterValue
                        {
                            SymbolName     = "SchoolNCYear.NCYear.ShortName",
                            SymbolTypeName = "iSIMS.Common.DataTypes.String"
                        },
                        TestValue = new InputParameterValue()
                        {
                            SymbolName     = "shortname",
                            SymbolTypeName = typeof(string).FullName
                        }
                    }
                }
            };

            //schoolNcYearQuery.Filter = new AndExpression
            //{
            //    Expressions = new List<object> {
            //        new EqualsExpression
            //        {
            //            CurrentValue = new ParameterValue
            //            {
            //                SymbolName = "SchoolNCYear.School",
            //                SymbolTypeName = "iSIMS.Common.DataTypes.Guischoolring"
            //            },
            //           TestValue = new InputParameterValue
            //            {
            //                SymbolName = "schoolId",
            //                SymbolTypeName = typeof(string).FullName
            //            }
            //        }
            //    }
            //};

            var parameters = new Dictionary <string, object>()
            {
                {
                    "Shortname", shortName
                }
            };

            DataEntityCollectionDTO schoolNCyearCollection = dataExchangeQuery.RetrieveEntityByQuery(schoolNcYearQuery, parameters, sessionToken);

            return(schoolNCyearCollection.DataEntityDtos.FirstOrDefault().Value);
        }