public async Task <Tuple <string, bool, int> > InsertUserCompetencyMatrices(QuestionnaireRequest request)
        {
            bool response    = false;
            int  status      = 0;
            var  message     = "";
            var  isMissMatch = false;
            List <UserCompetencyMatrix> userCompetencies = new List <UserCompetencyMatrix>();
            var userRepo = unitOfWork.GetRepository <User>();
            var user     = await Task.Run(() => userRepo.Get(x => x.UserID == request.UserID).FirstOrDefault());

            if (user != null)
            {
                var jobMetricsRepo = unitOfWork.GetRepository <JobCompetencyMatrix>();
                var jobRepo        = unitOfWork.GetRepository <Job>();
                var job            = await Task.Run(() => jobRepo.Get(x => x.JobID == user.JobID).FirstOrDefault());

                var userMetricsRepo = unitOfWork.GetRepository <UserCompetencyMatrix>();

                var comps = request.Competency.Split(';'); var points = request.Points.Split(';');
                if (comps.Length == points.Length)
                {
                    UserCompetencyMatrix userCompetency;

                    for (int i = 0; i < comps.Length; i++)
                    {
                        userCompetency = new UserCompetencyMatrix();
                        var comp      = comps[i];
                        var jobMetric = await Task.Run(() => jobMetricsRepo.Get(x => x.JobID == user.JobID && x.Competency.Equals(comp)).FirstOrDefault());

                        if (jobMetric != null)
                        {
                            userCompetency.UserID        = Convert.ToByte(request.UserID);
                            userCompetency.Type          = jobMetric.Type;
                            userCompetency.MainGroup     = jobMetric.Maingroup;
                            userCompetency.SubGroup      = jobMetric.Subgroup;
                            userCompetency.Competency    = comp;
                            userCompetency.LoW           = jobMetric.LoW;
                            userCompetency.RequiredLevel = jobMetric.RequiredLevel;
                            userCompetency.CurrentLevel  = Convert.ToInt32(Math.Round(Convert.ToDouble(points[i])));
                            userCompetency.RatingDate    = DateTime.Now;

                            var gap = jobMetric.RequiredLevel - userCompetency.CurrentLevel;
                            userCompetency.Gap = gap > 0 ? gap : 0;

                            userCompetencies.Add(userCompetency);
                            if (Convert.ToDouble(points[i]) <= 0)
                            {
                                log.LogError("Current Level in the request is 0 for: " + request.UserID + " with competency :" + comp + " below is the data." + "\n" +
                                             " Competency Object:\n" +
                                             " UserID = " + request.UserID + "\n" +
                                             " Competency = " + comp + "\n" +
                                             " Points = " + points[i] + "\n");
                            }
                        }
                        else
                        {
                            status = -1;
                            log.LogError("Job Metric does not exist for UserID: " + request.UserID + " with competency :" + comp + " below is the data." + "\n" +
                                         " Competency Object:\n" +
                                         " UserID = " + request.UserID + "\n" +
                                         " Competency = " + comp + "\n" +
                                         " Points = " + points[i] + "\n");
                        }
                    }
                }
                else
                {
                    isMissMatch = true;
                }

                if (userCompetencies.Any())
                {
                    userMetricsRepo.InsertAll(userCompetencies);
                    unitOfWork.Save();

                    status   = 1;
                    message  = "Data inserted successfully for UserID: " + request.UserID;
                    response = true;
                }
                else
                {
                    status = -1;
                    if (isMissMatch)
                    {
                        message = "Error in the Request: Number of Competencies does not match number of points in the request data passed.";
                    }
                    else
                    {
                        message = "No Competencies exist for UserID: " + request.UserID;
                    }
                }
            }
            else
            {
                status  = -2;
                message = "User does not exist with UserID: " + request.UserID;
            }
            log.LogDebug(message);
            return(new Tuple <string, bool, int>(message, response, status));
        }
Exemplo n.º 2
0
        protected void saveQuestionnaire(QuestionnaireRequest item, string key, ref DateTime taskDate, UserProfile actor)
        {
            int questionID = int.Parse(key.Substring(1));
            var quest      = models.GetTable <PDQQuestion>().Where(q => q.QuestionID == questionID).FirstOrDefault();

            if (quest == null)
            {
                return;
            }

            var values = Request.Form.GetValues(key);

            if (values == null)
            {
                return;
            }

            switch ((Naming.QuestionType)quest.QuestionType)
            {
            case Naming.QuestionType.問答題:
                String strVal;
                if (values.Length > 0 && (strVal = values[0].GetEfficientString()) != null)
                {
                    models.GetTable <PDQTask>().InsertOnSubmit(new PDQTask
                    {
                        QuestionID      = quest.QuestionID,
                        UID             = actor.UID,
                        PDQAnswer       = strVal,
                        QuestionnaireID = item.QuestionnaireID,
                        TaskDate        = taskDate
                    });
                    models.SubmitChanges();
                }
                break;

            case Naming.QuestionType.單選題:
            case Naming.QuestionType.單選其他:
                foreach (var v in values)
                {
                    int suggestID;
                    if (int.TryParse(v, out suggestID))
                    {
                        models.GetTable <PDQTask>().InsertOnSubmit(new PDQTask
                        {
                            QuestionID      = quest.QuestionID,
                            UID             = actor.UID,
                            SuggestionID    = suggestID,
                            QuestionnaireID = item.QuestionnaireID,
                            TaskDate        = taskDate
                        });
                    }
                    else
                    {
                        models.GetTable <PDQTask>().InsertOnSubmit(new PDQTask
                        {
                            QuestionID      = quest.QuestionID,
                            UID             = actor.UID,
                            PDQAnswer       = v,
                            QuestionnaireID = item.QuestionnaireID,
                            TaskDate        = taskDate
                        });
                    }
                    models.SubmitChanges();
                }
                break;

            case Naming.QuestionType.多重選:
                break;

            case Naming.QuestionType.是非題:
                if (values.Length > 0)
                {
                    models.GetTable <PDQTask>().InsertOnSubmit(new PDQTask
                    {
                        QuestionID      = quest.QuestionID,
                        UID             = actor.UID,
                        YesOrNo         = values[0] == "1" ? true : false,
                        QuestionnaireID = item.QuestionnaireID,
                        TaskDate        = taskDate
                    });
                    models.SubmitChanges();
                }
                break;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// submit questionnaire in workspace
        /// </summary>
        /// <exception cref="Cloud.Governance.Client.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="objecttype"></param>
        /// <param name="objectid"></param>
        /// <param name="questionnaireRequest"> (optional)</param>
        /// <returns>Task of List&lt;ServiceList&gt;</returns>
        public async System.Threading.Tasks.Task <List <ServiceList> > SubmitQuestionnaireInWorkspaceAsync(WorkspaceType objecttype, string objectid, QuestionnaireRequest questionnaireRequest = default(QuestionnaireRequest))
        {
            Cloud.Governance.Client.Client.ApiResponse <List <ServiceList> > localVarResponse = await SubmitQuestionnaireInWorkspaceAsyncWithHttpInfo(objecttype, objectid, questionnaireRequest);

            return(localVarResponse.Data);
        }
Exemplo n.º 4
0
        /// <summary>
        /// submit questionnaire in workspace
        /// </summary>
        /// <exception cref="Cloud.Governance.Client.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="objecttype"></param>
        /// <param name="objectid"></param>
        /// <param name="questionnaireRequest"> (optional)</param>
        /// <returns>Task of ApiResponse (List&lt;ServiceList&gt;)</returns>
        public async System.Threading.Tasks.Task <Cloud.Governance.Client.Client.ApiResponse <List <ServiceList> > > SubmitQuestionnaireInWorkspaceAsyncWithHttpInfo(WorkspaceType objecttype, string objectid, QuestionnaireRequest questionnaireRequest = default(QuestionnaireRequest))
        {
            // verify the required parameter 'objecttype' is set
            if (objecttype == null)
            {
                throw new Cloud.Governance.Client.Client.ApiException(400, "Missing required parameter 'objecttype' when calling QuestionnairesApi->SubmitQuestionnaireInWorkspace");
            }

            // verify the required parameter 'objectid' is set
            if (objectid == null)
            {
                throw new Cloud.Governance.Client.Client.ApiException(400, "Missing required parameter 'objectid' when calling QuestionnairesApi->SubmitQuestionnaireInWorkspace");
            }


            Cloud.Governance.Client.Client.RequestOptions localVarRequestOptions = new Cloud.Governance.Client.Client.RequestOptions();

            String[] _contentTypes = new String[] {
                "application/json-patch+json",
                "application/json",
                "text/json",
                "application/_*+json"
            };

            // to determine the Accept header
            String[] _accepts = new String[] {
                "text/plain",
                "application/json",
                "text/json"
            };

            foreach (var _contentType in _contentTypes)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", _contentType);
            }

            foreach (var _accept in _accepts)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", _accept);
            }

            if (objecttype != null)
            {
                localVarRequestOptions.PathParameters.Add("objecttype", Cloud.Governance.Client.Client.ClientUtils.ParameterToString(objecttype)); // path parameter
            }
            if (objectid != null)
            {
                localVarRequestOptions.PathParameters.Add("objectid", Cloud.Governance.Client.Client.ClientUtils.ParameterToString(objectid)); // path parameter
            }
            localVarRequestOptions.Data = questionnaireRequest;

            // authentication (ClientId) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("clientId")))
            {
                localVarRequestOptions.HeaderParameters.Add("clientId", this.Configuration.GetApiKeyWithPrefix("clientId"));
            }
            // authentication (ClientSecret) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("clientSecret")))
            {
                localVarRequestOptions.HeaderParameters.Add("clientSecret", this.Configuration.GetApiKeyWithPrefix("clientSecret"));
            }
            // authentication (UserPrincipalName) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("userPrincipalName")))
            {
                localVarRequestOptions.HeaderParameters.Add("userPrincipalName", this.Configuration.GetApiKeyWithPrefix("userPrincipalName"));
            }

            // make the HTTP request

            var localVarResponse = await this.AsynchronousClient.PostAsync <List <ServiceList> >("/questionnaires/workspace/{objecttype}/{objectid}", localVarRequestOptions, this.Configuration);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("SubmitQuestionnaireInWorkspace", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return(localVarResponse);
        }
Exemplo n.º 5
0
        /// <summary>
        /// submit questionnaire
        /// </summary>
        /// <exception cref="Cloud.Governance.Client.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="questionnaireRequest"> (optional)</param>
        /// <returns>Task of ApiResponse (List&lt;ServiceList&gt;)</returns>
        public async System.Threading.Tasks.Task <Cloud.Governance.Client.Client.ApiResponse <List <ServiceList> > > SubmitQuestionnaireAsyncWithHttpInfo(QuestionnaireRequest questionnaireRequest = default(QuestionnaireRequest))
        {
            Cloud.Governance.Client.Client.RequestOptions localVarRequestOptions = new Cloud.Governance.Client.Client.RequestOptions();

            String[] _contentTypes = new String[] {
                "application/json-patch+json",
                "application/json",
                "text/json",
                "application/_*+json"
            };

            // to determine the Accept header
            String[] _accepts = new String[] {
                "text/plain",
                "application/json",
                "text/json"
            };

            foreach (var _contentType in _contentTypes)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", _contentType);
            }

            foreach (var _accept in _accepts)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", _accept);
            }

            localVarRequestOptions.Data = questionnaireRequest;

            // authentication (ClientId) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("clientId")))
            {
                localVarRequestOptions.HeaderParameters.Add("clientId", this.Configuration.GetApiKeyWithPrefix("clientId"));
            }
            // authentication (ClientSecret) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("clientSecret")))
            {
                localVarRequestOptions.HeaderParameters.Add("clientSecret", this.Configuration.GetApiKeyWithPrefix("clientSecret"));
            }
            // authentication (UserPrincipalName) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("userPrincipalName")))
            {
                localVarRequestOptions.HeaderParameters.Add("userPrincipalName", this.Configuration.GetApiKeyWithPrefix("userPrincipalName"));
            }

            // make the HTTP request

            var localVarResponse = await this.AsynchronousClient.PostAsync <List <ServiceList> >("/questionnaires", localVarRequestOptions, this.Configuration);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("SubmitQuestionnaire", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return(localVarResponse);
        }
Exemplo n.º 6
0
 /// <summary>
 /// submit questionnaire in workspace
 /// </summary>
 /// <exception cref="Cloud.Governance.Client.Client.ApiException">Thrown when fails to make API call</exception>
 /// <param name="objecttype"></param>
 /// <param name="objectid"></param>
 /// <param name="questionnaireRequest"> (optional)</param>
 /// <returns>List&lt;ServiceList&gt;</returns>
 public List <ServiceList> SubmitQuestionnaireInWorkspace(WorkspaceType objecttype, string objectid, QuestionnaireRequest questionnaireRequest = default(QuestionnaireRequest))
 {
     Cloud.Governance.Client.Client.ApiResponse <List <ServiceList> > localVarResponse = SubmitQuestionnaireInWorkspaceWithHttpInfo(objecttype, objectid, questionnaireRequest);
     return(localVarResponse.Data);
 }
Exemplo n.º 7
0
        /// <summary>
        /// submit questionnaire
        /// </summary>
        /// <exception cref="Cloud.Governance.Client.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="questionnaireRequest"> (optional)</param>
        /// <returns>Task of List&lt;ServiceList&gt;</returns>
        public async System.Threading.Tasks.Task <List <ServiceList> > SubmitQuestionnaireAsync(QuestionnaireRequest questionnaireRequest = default(QuestionnaireRequest))
        {
            Cloud.Governance.Client.Client.ApiResponse <List <ServiceList> > localVarResponse = await SubmitQuestionnaireAsyncWithHttpInfo(questionnaireRequest);

            return(localVarResponse.Data);
        }
Exemplo n.º 8
0
        /// <summary>
        /// submit questionnaire
        /// </summary>
        /// <exception cref="Cloud.Governance.Client.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="questionnaireRequest"> (optional)</param>
        /// <returns>ApiResponse of List&lt;ServiceList&gt;</returns>
        public Cloud.Governance.Client.Client.ApiResponse <List <ServiceList> > SubmitQuestionnaireWithHttpInfo(QuestionnaireRequest questionnaireRequest = default(QuestionnaireRequest))
        {
            Cloud.Governance.Client.Client.RequestOptions localVarRequestOptions = new Cloud.Governance.Client.Client.RequestOptions();

            String[] _contentTypes = new String[] {
                "application/json-patch+json",
                "application/json",
                "text/json",
                "application/_*+json"
            };

            // to determine the Accept header
            String[] _accepts = new String[] {
                "text/plain",
                "application/json",
                "text/json"
            };

            var localVarContentType = Cloud.Governance.Client.Client.ClientUtils.SelectHeaderContentType(_contentTypes);

            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Cloud.Governance.Client.Client.ClientUtils.SelectHeaderAccept(_accepts);

            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = questionnaireRequest;

            // authentication (ClientId) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("clientId")))
            {
                localVarRequestOptions.HeaderParameters.Add("clientId", this.Configuration.GetApiKeyWithPrefix("clientId"));
            }
            // authentication (ClientSecret) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("clientSecret")))
            {
                localVarRequestOptions.HeaderParameters.Add("clientSecret", this.Configuration.GetApiKeyWithPrefix("clientSecret"));
            }
            // authentication (UserPrincipalName) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("userPrincipalName")))
            {
                localVarRequestOptions.HeaderParameters.Add("userPrincipalName", this.Configuration.GetApiKeyWithPrefix("userPrincipalName"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post <List <ServiceList> >("/questionnaires", localVarRequestOptions, this.Configuration);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("SubmitQuestionnaire", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return(localVarResponse);
        }
Exemplo n.º 9
0
 /// <summary>
 /// submit questionnaire
 /// </summary>
 /// <exception cref="Cloud.Governance.Client.Client.ApiException">Thrown when fails to make API call</exception>
 /// <param name="questionnaireRequest"> (optional)</param>
 /// <returns>List&lt;ServiceList&gt;</returns>
 public List <ServiceList> SubmitQuestionnaire(QuestionnaireRequest questionnaireRequest = default(QuestionnaireRequest))
 {
     Cloud.Governance.Client.Client.ApiResponse <List <ServiceList> > localVarResponse = SubmitQuestionnaireWithHttpInfo(questionnaireRequest);
     return(localVarResponse.Data);
 }
Exemplo n.º 10
0
        public async Task <bool> CreateAsync(QuestionnaireRequest questionnaireRequest)
        {
            Questionnaire questionnaire = _mapper.Map <QuestionnaireRequest, Questionnaire>(questionnaireRequest);

            return(await _questionnaireRepository.AddAsync(questionnaire));
        }
        public async Task <IActionResult> Create(QuestionnaireRequest questionnaireRequest)
        {
            await _questionnaireService.CreateAsync(questionnaireRequest);

            return(Created("", ""));
        }