Esempio n. 1
0
        public async Task <IActionResult> CreateComments([FromBody] JobStatusCommentsViewModel jscvm)
        {
            try
            {
                CurrentUser cUser = new CurrentUser(HttpContext, _configuration);
                jscvm.CommentId = 0;
                jscvm.Active    = "Y";
                jscvm.UserId    = cUser.UserId;

                if (jscvm.Type == null && jscvm.Type == "")
                {
                    throw new CustomException("Please select valid type for comments", "Error", true, "Type(s) are Job, Equipment and UnitAnalysis and it is mandatory to Save Comments.");
                }
                else
                {
                    if (jscvm.Type == "J")
                    {
                        var result = await reportFeederRepo.SaveJobComments(jscvm);

                        await auditLogService.LogActivity(cUser.UserId, cUser.HostIP, cUser.SessionId, "Create Report", "Comments Created for Job.");

                        return(Ok(result));
                    }
                    else if (jscvm.Type == "E")
                    {
                        var result = await reportFeederRepo.SaveEquipmentComments(jscvm);

                        await auditLogService.LogActivity(cUser.UserId, cUser.HostIP, cUser.SessionId, "Create Report", "Comments Created for Equipment.");

                        return(Ok(result));
                    }
                    else if (jscvm.Type == "U")
                    {
                        var result = await reportFeederRepo.SaveUnitAnalysisComments(jscvm);

                        await auditLogService.LogActivity(cUser.UserId, cUser.HostIP, cUser.SessionId, "Create Report", "Comments Created for Unit.");

                        return(Ok(result));
                    }
                    else
                    {
                        throw new CustomException("Please select valid type for comments", "Error", true, "Type(s) are Job, Equipment and UnitAnalysis and it is mandatory to Save Comments.");
                    }
                }
            }
            catch (CustomException cex)
            {
                var returnObj = new EmaintenanceMessage(cex.Message, cex.Type, cex.IsException, cex.Exception?.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, returnObj));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new EmaintenanceMessage(ex.Message)));
            }
        }
        /** This method is used to Save Equipment Comments */
        public async Task <IEnumerable <dynamic> > SaveEquipmentComments(JobStatusCommentsViewModel jscvm)
        {
            string sql = "dbo.EAppSaveJobEquipmentComment";

            using (var conn = util.MasterCon())
            {
                try
                {
                    DynamicParameters _params = new DynamicParameters();
                    _params.Add("@JobEquipCommentId", jscvm.CommentId, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@JobEquipmentId", jscvm.TypeId, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@StatusId", jscvm.StatusId, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@DataCollectionDate", jscvm.DataCollectionDate, DbType.Date, direction: ParameterDirection.Input);
                    _params.Add("@ReportDate", jscvm.ReportDate, DbType.Date, direction: ParameterDirection.Input);
                    _params.Add("@Comments", jscvm.Comments, DbType.String, direction: ParameterDirection.Input);
                    _params.Add("@ConditionId", jscvm.ConditionId, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@EquipmentComment", jscvm.EquipmentComment, DbType.String, direction: ParameterDirection.Input);
                    _params.Add("@Active", jscvm.Active, DbType.String, direction: ParameterDirection.Input);
                    _params.Add("@UserId", jscvm.UserId, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@Result", null, DbType.String, direction: ParameterDirection.Output, size: 4000);
                    _params.Add("@ResultText", null, DbType.String, direction: ParameterDirection.Output, size: 4000);
                    _params.Add("@IsWarningAccepted ", jscvm.IsWarningAccepted, DbType.Int32, direction: ParameterDirection.Input);

                    var returnValue = await(conn.QueryAsync <dynamic>(sql, _params, commandType: CommandType.StoredProcedure));

                    string result     = _params.Get <string>("Result");
                    string resultText = _params.Get <string>("ResultText");

                    if (result == "F")
                    {
                        throw new CustomException(resultText, "Error", true, resultText);
                    }
                    else if (result == "W")
                    {
                        throw new CustomException(resultText, "Confirmation", true, resultText);
                    }

                    return(returnValue);
                }
                catch (CustomException cex)
                {
                    throw new CustomException(cex.Message, cex.Type, cex.IsException, cex.Exception?.ToString());
                }
                catch (Exception ex)
                {
                    throw new CustomException("Unable to Save Or Update, Please Contact Support!!!", "Error", true, ex);
                }
            }
        }
        /** This method is used to Save Job Comments */
        public async Task <IEnumerable <dynamic> > SaveJobComments(JobStatusCommentsViewModel jscvm)
        {
            string sql = "dbo.EAppSaveJobComment";

            using (var conn = util.MasterCon())

            {
                try
                {
                    DynamicParameters _params = new DynamicParameters();
                    _params.Add("@JobCommentId", jscvm.CommentId, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@JobId", jscvm.TypeId, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@StatusId", jscvm.StatusId, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@DatacollectionDone", jscvm.DatacollectionDone, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@ReportSent", jscvm.ReportSent, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@Comments", jscvm.Comments, DbType.String, direction: ParameterDirection.Input);
                    _params.Add("@DataCollectionDate", jscvm.DataCollectionDate, DbType.Date, direction: ParameterDirection.Input);
                    _params.Add("@ReportDate", jscvm.ReportDate, DbType.Date, direction: ParameterDirection.Input);
                    _params.Add("@Active", jscvm.Active, DbType.String, direction: ParameterDirection.Input);
                    _params.Add("@UserId", jscvm.UserId, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@ReviewerId", jscvm.ReviewerId, DbType.Int32, direction: ParameterDirection.Input);
                    _params.Add("@Result", null, DbType.String, direction: ParameterDirection.Output, size: 4000);
                    _params.Add("@ResultText", null, DbType.String, direction: ParameterDirection.Output, size: 4000);
                    _params.Add("@IsWarningAccepted ", jscvm.IsWarningAccepted, DbType.Int32, direction: ParameterDirection.Input);

                    var returnValue = await(conn.QueryAsync <dynamic>(sql, _params, commandType: CommandType.StoredProcedure));

                    string result     = _params.Get <string>("Result");
                    string resultText = _params.Get <string>("ResultText");

                    if (result == "F")
                    {
                        throw new CustomException(resultText, "Error", true, resultText);
                    }
                    else if (result == "W")
                    {
                        throw new CustomException(resultText, "Confirmation", true, resultText);
                    }

                    /** Notify EMail to Analyst */
                    if (jscvm.DatacollectionDone == 1)
                    {
                        try
                        {
                            await Task.Factory.StartNew(async() =>
                            {
                                //string Type = "Notify_Analyst";
                                //int ClientSiteId = 0;
                                //int LanguageId = 1;
                                //int Id = (int)jscvm.TypeId;
                                //int UserId = jscvm.UserId;
                                //String evmStr = (String)await conn.QueryFirstAsync<String>("dbo.EAppGetNotification", new { Type, ClientSiteId, LanguageId, Id, UserId }, commandType: CommandType.StoredProcedure);

                                String evmStr      = await emailService.GetEmailNotificationTemplate("Notify_Analyst", 0, 1, (int)jscvm.TypeId, jscvm.UserId);
                                EmailViewModel evm = JsonConvert.DeserializeObject <EmailViewModel>(evmStr);
                                await notificationServiceHelper.PrepareCalendarNotification(evm);
                            });
                        }
                        catch (Exception ex)
                        {
                            // Notification exception.
                            var e = ex;
                        }
                    }

                    int x = await lookupsRepo.GetLookupByNameNCode("SU", "JobProcessStatus");

                    if (jscvm.StatusId == x && jscvm.ReviewerId != null && jscvm.ReviewerId > 0)
                    {
                        if (jscvm.StatusId != jscvm.OldStatusId)
                        {
                            /** Notify EMail to Reviewer */
                            try
                            {
                                await Task.Factory.StartNew(async() =>
                                {
                                    String evmStr      = await emailService.GetEmailNotificationTemplate("Notify_Reviewer", 0, 1, (int)jscvm.TypeId, jscvm.UserId);
                                    EmailViewModel evm = JsonConvert.DeserializeObject <EmailViewModel>(evmStr);
                                    await notificationServiceHelper.PrepareCalendarNotification(evm);
                                });
                            }
                            catch (Exception ex)
                            {
                                // Notification exception.
                            }
                        }
                    }

                    x = await lookupsRepo.GetLookupByNameNCode("C", "JobProcessStatus");

                    if (jscvm.StatusId == x && jscvm.StatusId != jscvm.OldStatusId)
                    {
                        /** Notify EMail to Reviewer */
                        try
                        {
                            await Task.Factory.StartNew(async() =>
                            {
                                String evmStr      = await emailService.GetEmailNotificationTemplate("Notify_Planner", 0, 1, (int)jscvm.TypeId, jscvm.UserId);
                                EmailViewModel evm = JsonConvert.DeserializeObject <EmailViewModel>(evmStr);
                                await notificationServiceHelper.PrepareCalendarNotification(evm);
                            });
                        }
                        catch (Exception ex)
                        {
                            // Notification exception.
                        }
                    }
                    return(returnValue);
                }
                catch (CustomException cex)
                {
                    throw new CustomException(cex.Message, cex.Type, cex.IsException, cex.Exception?.ToString());
                }
                catch (Exception ex)
                {
                    throw new CustomException("Unable to Save Or Update, Please Contact Support!!!", "Error", true, ex);
                }
            }
        }