public void AddServiceRecording_Success()
        {
            // Arrange
            var url = baseRoute + "AddServiceRecording";
            var serviceRecording = new ServiceRecordingModel
            {
                CallCenterHeaderID       = callCenterHeaderID,
                ServiceRecordingSourceID = 1,
                ServiceItemID            = 1,
                AttendanceStatusID       = 1,
                DeliveryMethodID         = 1,
                ServiceStatusID          = 1,
                ServiceLocationID        = 1,
                RecipientCodeID          = 1,
                NumberOfRecipients       = 100,
                ConversionStatusID       = 1,
                ConversionDateTime       = DateTime.Now
            };


            // Act
            var response = communicationManager.Post <ServiceRecordingModel, Response <ServiceRecordingModel> >(serviceRecording, url);

            // Assert
            Assert.IsNotNull(response, "Response can't be null");
            Assert.IsTrue(response.ResultCode == 0, "Service Recording could not be created");
            Assert.IsTrue(response.RowAffected > 0, "Service Recording could not be created");
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds the Service Recording.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        public Response <ServiceRecordingModel> AddServiceRecording(ServiceRecordingModel model)
        {
            Response <ServiceRecordingModel> serviceRecordingResult = new Response <ServiceRecordingModel>();

            serviceRecordingResult.ResultCode = 0;
            using (var transactionScope = _unitOfWork.BeginTransactionScope())
            {
                var referralRepository = _unitOfWork.GetRepository <ServiceRecordingModel>(SchemaName.Core);
                var procParams         = BuildParams(model);

                serviceRecordingResult = _unitOfWork.EnsureInTransaction(referralRepository.ExecuteNQStoredProc, "usp_AddServiceRecording", procParams,
                                                                         forceRollback: model.ForceRollback.GetValueOrDefault(false), idResult: true);
                if (serviceRecordingResult.ResultCode == 0)
                {
                    // Only call center record should update end time // Hard coded 1,6 should replace with Enum.
                    if (model.ServiceRecordingSourceID == 1 || model.ServiceRecordingSourceID == 6)
                    {
                        Response <ServiceRecordingModel> endTimeResult = UpdateEndTime(model);
                        if (endTimeResult.ResultCode != 0)
                        {
                            serviceRecordingResult.ResultCode    = endTimeResult.ResultCode;
                            serviceRecordingResult.ResultMessage = endTimeResult.ResultMessage;
                        }
                    }
                    AddUpdateAdditionalDetails(model, serviceRecordingResult, serviceRecordingResult.ID);
                }
                _unitOfWork.TransactionScopeComplete(transactionScope);
            }
            return(serviceRecordingResult);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Updates the end time.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        private Response <ServiceRecordingModel> UpdateEndTime(ServiceRecordingModel model)
        {
            var endTimeParams = new List <SqlParameter> {
                new SqlParameter("CallCenterHeaderID", model.CallCenterHeaderID),
                new SqlParameter("CallStartTime", (object)model.ServiceStartDate ?? DBNull.Value),
                new SqlParameter("CallEndTime", (object)model.ServiceEndDate ?? DBNull.Value),
                new SqlParameter("ModifiedOn", model.ModifiedOn ?? DateTime.Now)
            };
            var repository = _unitOfWork.GetRepository <ServiceRecordingModel>(SchemaName.CallCenter);

            return(repository.ExecuteNQStoredProc("usp_UpdateCallCenterEndTime", endTimeParams));
        }
        public static ServiceRecordingModel ToModel(this ServiceRecordingViewModel model)
        {
            if (model == null)
            {
                return(null);
            }

            var entity = new ServiceRecordingModel
            {
                ServiceRecordingID       = model.ServiceRecordingID,
                RecipientCode            = model.RecipientCode,
                ServiceRecordingSourceID = model.ServiceRecordingSourceID,
                ParentServiceRecordingID = model.ParentServiceRecordingID,
                ServiceRecordingHeaderID = model.ServiceRecordingHeaderID,
                CallCenterHeaderID       = model.CallCenterHeaderID,
                ServiceItemID            = model.ServiceItemID,
                AttendanceStatusID       = model.AttendanceStatusID,
                ServiceRecordingVoidID   = model.ServiceRecordingVoidID,
                DeliveryMethodID         = model.DeliveryMethodID,
                ServiceStatusID          = model.ServiceStatusID,
                SourceHeaderID           = model.SourceHeaderID,
                ServiceLocationID        = model.ServiceLocationID,
                RecipientCodeID          = model.RecipientCodeID,
                TrackingFieldID          = model.TrackingFieldID,
                NumberOfRecipients       = model.NumberOfRecipients,
                ConversionStatusID       = model.ConversionStatusID,
                ConversionDateTime       = model.ConversionDateTime,
                EndDate            = model.EndDate,
                UserID             = model.UserID,
                OrganizationID     = model.OrganizationID,
                ServiceTypeID      = model.ServiceTypeID,
                ServiceStartDate   = model.ServiceStartDate,
                ServiceStartTime   = model.ServiceStartTime,
                ServiceEndDate     = model.ServiceEndDate,
                ServiceEndTime     = model.ServiceEndTime,
                SupervisorUserID   = model.SupervisorUserID,
                AttendedList       = model.AttendedList,
                AdditionalUserList = model.AdditionalUserList,
                DocumentStatusID   = model.DocumentStatusID,
                ModifiedOn         = model.ModifiedOn,
                CallStatusID       = model.CallStatusID,
                IsVoided           = model.IsVoided,
                SignedOn           = model.SignedOn,
                SentToCMHCDate     = model.SentToCMHCDate,
                SystemModifiedOn   = model.SystemModifiedOn,
                Duration           = model.Duration,
                ServiceDurationID  = model.ServiceDurationID
            };

            return(entity);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Builds the parameters.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        private List <SqlParameter> BuildParams(ServiceRecordingModel model)
        {
            var spParameters = new List <SqlParameter>();

            if (model.ServiceRecordingID > 0)
            {
                spParameters.Add(new SqlParameter("ServiceRecordingID", model.ServiceRecordingID));
            }
            else
            {
                spParameters.Add(new SqlParameter("ServiceRecordingHeaderID", (object)model.ServiceRecordingHeaderID ?? DBNull.Value));
            }

            spParameters.AddRange(new List <SqlParameter>
            {
                new SqlParameter("ParentServiceRecordingID", (object)model.ParentServiceRecordingID ?? DBNull.Value),
                new SqlParameter("ServiceRecordingSourceID", (object)model.ServiceRecordingSourceID ?? DBNull.Value),
                new SqlParameter("SourceHeaderID", (object)model.SourceHeaderID ?? model.CallCenterHeaderID),
                new SqlParameter("OrganizationID", (object)model.OrganizationID ?? DBNull.Value),
                new SqlParameter("ServiceTypeID", (object)model.ServiceTypeID ?? DBNull.Value),
                new SqlParameter("ServiceItemID", (object)model.ServiceItemID ?? DBNull.Value),
                new SqlParameter("AttendanceStatusID", (object)model.AttendanceStatusID ?? DBNull.Value),
                new SqlParameter("DeliveryMethodID", (object)model.DeliveryMethodID ?? DBNull.Value),
                new SqlParameter("ServiceStatusID", (object)model.ServiceStatusID ?? DBNull.Value),
                new SqlParameter("ServiceLocationID", (object)model.ServiceLocationID ?? DBNull.Value),
                new SqlParameter("ServiceStartDate", (object)model.ServiceStartDate ?? DBNull.Value),
                new SqlParameter("ServiceEndDate", (object)model.ServiceEndDate ?? DBNull.Value),
                new SqlParameter("RecipientCodeID", (object)model.RecipientCodeID ?? DBNull.Value),
                new SqlParameter("RecipientCode", (object)model.RecipientCode ?? DBNull.Value),
                new SqlParameter("NumberOfRecipients", (object)model.NumberOfRecipients ?? DBNull.Value),
                new SqlParameter("TrackingFieldID", (object)model.TrackingFieldID ?? DBNull.Value),
                //new SqlParameter("ConversionStatusID",model.ConversionStatusID),
                //new SqlParameter("ConversionDateTime",model.ConversionDateTime),
                new SqlParameter("SupervisorUserID", (object)model.SupervisorUserID ?? DBNull.Value),
                new SqlParameter("UserID", (object)model.UserID ?? DBNull.Value),
                new SqlParameter("ModifiedOn", model.ModifiedOn ?? DateTime.Now)
            });
            if (model.ServiceRecordingID > 0)
            {
                spParameters.Add(new SqlParameter("SystemModifiedOn", (object)model.SystemModifiedOn ?? DBNull.Value));
            }

            return(spParameters);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Updates the Service Recording.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        public Response <ServiceRecordingModel> UpdateServiceRecording(ServiceRecordingModel model)
        {
            const string apiUrl = BaseRoute + "UpdateServiceRecording";

            return(_communicationManager.Put <ServiceRecordingModel, Response <ServiceRecordingModel> >(model, apiUrl));
        }
 public IHttpActionResult UpdateServiceRecording(ServiceRecordingModel model)
 {
     return(new HttpResult <Response <ServiceRecordingModel> >(_serviceRecordingDataProvider.UpdateServiceRecording(model), Request));
 }
Ejemplo n.º 8
0
 public IHttpActionResult UpdateServiceRecording(ServiceRecordingModel model)
 {
     return(new HttpResult <Response <ServiceRecordingModel> >(_serviceRecordingRuleEngine.UpdateServiceRecording(model), Request));
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Adds the update additional details.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <param name="serviceRecordingResult">The service recording result.</param>
        /// <param name="ServiceRecordingID">The service recording identifier.</param>
        private void AddUpdateAdditionalDetails(ServiceRecordingModel model, Response <ServiceRecordingModel> serviceRecordingResult, long ServiceRecordingID)
        {
            var attendeeRepository = _unitOfWork.GetRepository <ServiceRecordingAttendeeModel>(SchemaName.Core);
            Response <ServiceRecordingAttendeeModel> attendeeResult = new Response <ServiceRecordingAttendeeModel>();

            foreach (var item in model.AttendedList)
            {
                //save each
                if (item.ServiceRecordingAttendeeID != 0)
                {
                    if (!((bool)item.IsActive))
                    {       //delete
                        var removeParams = new List <SqlParameter> {
                            new SqlParameter("ServiceRecordingAttendeeID", item.ServiceRecordingAttendeeID),
                            new SqlParameter("ModifiedOn", model.ModifiedOn ?? DateTime.Now)
                        };
                        attendeeResult = _unitOfWork.EnsureInTransaction(attendeeRepository.ExecuteNQStoredProc, "usp_DeleteServiceRecordingAttendee", removeParams,
                                                                         forceRollback: model.ForceRollback.GetValueOrDefault(false));
                    }
                    else
                    {      //update
                        var attendeeParams = new List <SqlParameter> {
                            new SqlParameter("ServiceRecordingAttendeeID", item.ServiceRecordingAttendeeID),
                            new SqlParameter("ServiceRecordingID", ServiceRecordingID),
                            new SqlParameter("Name", item.Name),
                            new SqlParameter("ModifiedOn", model.ModifiedOn ?? DateTime.Now)
                        };
                        attendeeResult = _unitOfWork.EnsureInTransaction(attendeeRepository.ExecuteNQStoredProc, "usp_UpdateServiceRecordingAttendee", attendeeParams,
                                                                         forceRollback: model.ForceRollback.GetValueOrDefault(false));
                    }
                }
                else
                {
                    //add
                    var attendeeParams = new List <SqlParameter> {
                        new SqlParameter("ServiceRecordingID", ServiceRecordingID),
                        new SqlParameter("Name", item.Name),
                        new SqlParameter("ModifiedOn", model.ModifiedOn ?? DateTime.Now)
                    };
                    attendeeResult = _unitOfWork.EnsureInTransaction(attendeeRepository.ExecuteNQStoredProc, "usp_AddServiceRecordingAttendee", attendeeParams,
                                                                     forceRollback: model.ForceRollback.GetValueOrDefault(false), idResult: true);
                }
            }
            if (attendeeResult.ResultCode != 0)
            {
                serviceRecordingResult.ResultCode    = attendeeResult.ResultCode;
                serviceRecordingResult.ResultMessage = attendeeResult.ResultMessage;
            }

            var usersRepository = _unitOfWork.GetRepository <ServiceRecordingAdditionalUserModel>(SchemaName.Core);
            Response <ServiceRecordingAdditionalUserModel> usersResult = new Response <ServiceRecordingAdditionalUserModel>();

            foreach (var item in model.AdditionalUserList)
            {
                //save each
                if (item.ServiceRecordingAdditionalUserID > 0)
                {
                    if (!((bool)item.IsActive))
                    {       //delete
                        var removeParams = new List <SqlParameter> {
                            new SqlParameter("ServiceRecordingAdditionalUserID", item.ServiceRecordingAdditionalUserID),
                            new SqlParameter("ModifiedOn", model.ModifiedOn ?? DateTime.Now)
                        };
                        usersResult = _unitOfWork.EnsureInTransaction(usersRepository.ExecuteNQStoredProc, "usp_DeleteServiceRecordingAdditionalUser", removeParams,
                                                                      forceRollback: model.ForceRollback.GetValueOrDefault(false));
                    }
                    else
                    {      //update
                        var attendeeParams = new List <SqlParameter> {
                            new SqlParameter("ServiceRecordingAdditionalUserID", item.ServiceRecordingAdditionalUserID),
                            new SqlParameter("ServiceRecordingID", ServiceRecordingID),
                            new SqlParameter("UserID", item.UserID),
                            new SqlParameter("ModifiedOn", model.ModifiedOn ?? DateTime.Now)
                        };
                        usersResult = _unitOfWork.EnsureInTransaction(usersRepository.ExecuteNQStoredProc, "usp_UpdateServiceRecordingAdditionalUser", attendeeParams,
                                                                      forceRollback: model.ForceRollback.GetValueOrDefault(false));
                    }
                }
                else
                {
                    //add
                    var attendeeParams = new List <SqlParameter> {
                        new SqlParameter("ServiceRecordingID", ServiceRecordingID),
                        new SqlParameter("UserID", item.UserID),
                        new SqlParameter("ModifiedOn", model.ModifiedOn ?? DateTime.Now)
                    };
                    usersResult = _unitOfWork.EnsureInTransaction(usersRepository.ExecuteNQStoredProc, "usp_AddServiceRecordingAdditionalUser", attendeeParams,
                                                                  forceRollback: model.ForceRollback.GetValueOrDefault(false), idResult: true);
                }
                if (usersResult.ResultCode != 0)
                {
                    serviceRecordingResult.ResultCode    = usersResult.ResultCode;
                    serviceRecordingResult.ResultMessage = usersResult.ResultMessage;
                }
            }
        }
Ejemplo n.º 10
0
 /// <summary>
 /// Updates the Service Recording.
 /// </summary>
 /// <param name="model">The model.</param>
 /// <returns></returns>
 public Response <ServiceRecordingModel> UpdateServiceRecording(ServiceRecordingModel model)
 {
     return(_serviceRecordingService.UpdateServiceRecording(model));
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Adds the Service Recording.
 /// </summary>
 /// <param name="model">The model.</param>
 /// <returns></returns>
 public Response <ServiceRecordingModel> AddServiceRecording(ServiceRecordingModel model)
 {
     return(_serviceRecordingService.AddServiceRecording(model));
 }