public static byte[] DownloadItemById(int itemId) { var da = new DataAccess(); CorrespondenceItem returnValue = da.GetActionCorrespondenceItem(itemId); return(returnValue.ContentArray); }
public static string OpenItemById(int itemId) { var da = new DataAccess(); CorrespondenceItem returnValue = da.GetActionCorrespondenceItem(itemId); return(returnValue.ContentText); }
public static Item Initiate(DataContext dataContext, string internalReference, ICorrespondent source, ICorrespondent target, Router router, IPayload payload, bool wait = true) { if (source == null) { throw new Exception("source argument can not be null."); } if (target == null) { throw new Exception("target argument can not be null."); } if (payload == null) { throw new Exception("payload argument can not be null."); } if (router == null) { router = Router.GetRoute(source, target, payload.CorrespondenceType); } if (router == null) { throw new Exception("Unable to compute route for correspondence item."); } CorrespondenceItem correspondenceItem = new CorrespondenceItem(); correspondenceItem.Context = payload.CorrespondenceContext; correspondenceItem.CorrespondenceType = payload.CorrespondenceType; correspondenceItem.CreatedTimestamp = DateTime.Now; correspondenceItem.Status = CorrespondenceItemStatus.Created; correspondenceItem.StatusTimestamp = correspondenceItem.CreatedTimestamp; correspondenceItem.TargetEntityID = target.ID; correspondenceItem.TargetEntityType = GetEntityType(target); correspondenceItem.SourceEntityID = source.ID; correspondenceItem.SourceEntityType = GetEntityType(source); correspondenceItem.SubType = payload.SubType; correspondenceItem.InternalReference = internalReference; correspondenceItem.Value = "RFU"; dataContext.CorrespondenceItems.Add(correspondenceItem); CorrespondenceRoute correspondenceRoute = new CorrespondenceRoute(); correspondenceRoute.Source = router.Source; correspondenceRoute.Target = router.Target; correspondenceRoute.CorrespondenceItem = correspondenceItem; dataContext.CorrespondenceRoutes.Add(correspondenceRoute); if (payload.CorrespondenceType == CorrespondenceType.Email) { // TODO } else if (payload.CorrespondenceType == CorrespondenceType.Sms) { if (!(payload is SmsPayload)) { throw new Exception("Expected sms payload."); } CorrespondenceSmsPayload correspondenceSmsPayload = new CorrespondenceSmsPayload(); correspondenceSmsPayload.CorrespondenceItem = correspondenceItem; correspondenceSmsPayload.Message = ((SmsPayload)payload).Message; dataContext.CorrespondenceSmsPayloads.Add(correspondenceSmsPayload); } dataContext.SaveChanges(); Processor.Process(correspondenceItem.ID, wait); return(new Item(correspondenceItem.InternalReference, source, target, correspondenceRoute, payload)); }
internal void ProcessSmsMock(DataContext dataContext, MockSmsSettings settings, CorrespondenceItem correspondenceItem) { try { Thread.Sleep(settings.Delay); correspondenceItem.Status = CorrespondenceItemStatus.Dispatched; correspondenceItem.StatusTimestamp = DateTime.Now; dataContext.SaveChanges(); } catch (Exception ex) { Logger.Error(ex); correspondenceItem.Status = CorrespondenceItemStatus.FailedToDispatch; correspondenceItem.StatusTimestamp = DateTime.Now; dataContext.SaveChanges(); } }
internal CorrespondenceItemStatus ProcessSmsCM(DataContext dataContext, CMSmsSettings settings, CorrespondenceItem correspondenceItem) { try { correspondenceItem.ExternalReference = ""; // if there is a problem, invalidate the mobile number var messageBuilder = new CMSmsMessageBuilder(); var request = messageBuilder.CreateMessage( settings.ProductToken, correspondenceItem.Route.Source, correspondenceItem.Route.Target, correspondenceItem.SmsPayload.Message); var webClient = new WebClient(); webClient.Headers["Content-Type"] = messageBuilder.GetContentType(); webClient.Encoding = System.Text.Encoding.UTF8; var response = JObject.Parse(webClient.UploadString(settings.BaseUrl, request)); var errorCode = (int)response["errorCode"]; if (errorCode == 0) { correspondenceItem.Status = CorrespondenceItemStatus.Dispatched; } else { correspondenceItem.Status = CorrespondenceItemStatus.FailedToDispatch; try { JArray messages = (JArray)response["messages"]; correspondenceItem.FailureReason = (string)messages[0]["messageDetails"]; } catch { correspondenceItem.FailureReason = "Failed to parse error."; } } correspondenceItem.StatusTimestamp = DateTime.Now; dataContext.SaveChanges(); } catch (WebException wex) { Logger.Error(string.Format("{0} - {1}", wex.Status, wex.Message)); correspondenceItem.Status = CorrespondenceItemStatus.FailedToDispatch; correspondenceItem.StatusTimestamp = DateTime.Now; dataContext.SaveChanges(); } catch (Exception ex) { Logger.Error(ex); correspondenceItem.Status = CorrespondenceItemStatus.FailedToDispatch; correspondenceItem.StatusTimestamp = DateTime.Now; dataContext.SaveChanges(); } return(correspondenceItem.Status); }