private void HandleAppointmentScheduling(MessageEventArgs messageEvent) { try { ProcessPatientAppointmentMessage appointmentMessage = new ProcessPatientAppointmentMessage(); var appointmentScheduling = appointmentMessage.Get(messageEvent.EntityId); var appointmentSchedulingEntity = _jsonEntityMapper.AppointmentScheduling(appointmentScheduling, messageEvent); string appointmentSchedulingJson = new JavaScriptSerializer().Serialize(appointmentSchedulingEntity); //save var apiOutbox = new ApiOutbox() { DateSent = DateTime.Now, Message = appointmentSchedulingJson }; _apiOutboxManager.AddApiOutbox(apiOutbox); //send SendData(appointmentSchedulingJson, "").ConfigureAwait(false); } catch (Exception e) { string message = new JavaScriptSerializer().Serialize(messageEvent); //error var apiOutbox = new ApiOutbox() { DateSent = DateTime.Now, Message = message, LogMessage = e.Message + "\n" + e.StackTrace }; _apiOutboxManager.AddApiOutbox(apiOutbox); } }
private void HandleAppointments(ApiInbox incomingMessage) { //save to inbox int Id = _apiInboxmanager.AddApiInbox(incomingMessage); incomingMessage.Id = Id; try { PatientAppointmentEntity appointmentEntity = new JavaScriptSerializer().Deserialize <PatientAppointmentEntity>(incomingMessage.Message); Mapper.Initialize(cfg => { cfg.CreateMap <PatientAppointSchedulingDTO, PatientAppointmentEntity>().ReverseMap(); cfg.CreateMap <DTO.CommonEntities.MESSAGEHEADER, MappingEntities.MESSAGEHEADER>().ReverseMap(); cfg.CreateMap <DTO.CommonEntities.APPOINTMENTPATIENTIDENTIFICATION, MappingEntities.APPOINTMENTPATIENTIDENTIFICATION>().ReverseMap(); cfg.CreateMap <DTO.CommonEntities.EXTERNALPATIENTID, MappingEntities.EXTERNALPATIENTID>().ReverseMap(); cfg.CreateMap <DTO.CommonEntities.INTERNALPATIENTID, MappingEntities.INTERNALPATIENTID>().ReverseMap(); cfg.CreateMap <DTO.CommonEntities.PATIENTNAME, MappingEntities.PATIENTNAME>().ReverseMap(); cfg.CreateMap <DTO.CommonEntities.APPOINTMENT_INFORMATION, MappingEntities.APPOINTMENT_INFORMATION>().ReverseMap(); cfg.CreateMap <DTO.CommonEntities.PLACER_APPOINTMENT_NUMBER, MappingEntities.PLACER_APPOINTMENT_NUMBER>().ReverseMap(); }); var appointment = Mapper.Map <PatientAppointSchedulingDTO>(appointmentEntity); var processAppoinment = new ProcessPatientAppointmentMessage(); foreach (var itemAppointment in appointment.APPOINTMENT_INFORMATION) { if (itemAppointment.ACTION_CODE == "A") { processAppoinment.Save(appointment); } else if (itemAppointment.ACTION_CODE == "U" || itemAppointment.ACTION_CODE == "D") { processAppoinment.Update(appointment); } } //update message that it has been processed incomingMessage.DateProcessed = DateTime.Now; incomingMessage.Processed = true; incomingMessage.IsSuccess = true; _apiInboxmanager.EditApiInbox(incomingMessage); } catch (Exception e) { incomingMessage.LogMessage = e.Message; incomingMessage.Processed = true; incomingMessage.IsSuccess = false; _apiInboxmanager.EditApiInbox(incomingMessage); } }