public void Done() { _isOpen = false; NotifyOfPropertyChange(() => IsOpen); var logString = new StringBuilder(); logString.AppendLine("photos"); var messages = new List <TLMessage>(); var randomIndex = new Dictionary <long, long>(); foreach (var item in Items) { if (item.IsButton) { continue; } if (item.Message != null) { if (item.Message.RandomIndex == 0) { logString.AppendLine(string.Format("random_id=0 msg={0} original_file_name={1}", item.Message, item.File.Name)); continue; } if (randomIndex.ContainsKey(item.Message.RandomIndex)) { logString.AppendLine(string.Format("random_id exists msg={0} original_file_name={1}", item.Message, item.File.Name)); continue; } randomIndex[item.Message.RandomIndex] = item.Message.RandomIndex; var mediaPhoto = item.Message.Media as TLMessageMediaPhoto28; var photo = mediaPhoto.Photo as TLPhoto28; var size = photo.Sizes.First() as TLPhotoSize; var fileLocation = size.Location; var fileName = String.Format("{0}_{1}_{2}.jpg", fileLocation.VolumeId, fileLocation.LocalId, fileLocation.Secret); item.Message.Media.UploadingProgress = 0.001; messages.Add(item.Message); logString.AppendLine(string.Format("msg={0} file_name={1}", item.Message, fileName)); } else { logString.AppendLine(string.Format("empty msg original_file_name={0}", item.File.Name)); } } #if MULTIPLE_PHOTOS Log.Write(logString.ToString()); #endif ContinueAction.SafeInvoke(messages); }
public void Done() { _isOpen = false; NotifyOfPropertyChange(() => IsOpen); ContinueAction.SafeInvoke(_currentItem); }
public static int CreateContinueRequest(FlatBufferBuilder builder, ContinueAction action = 0, uint target_address = 0) { builder.StartObject(2); ContinueRequest.AddTargetAddress(builder, target_address); ContinueRequest.AddAction(builder, action); return(ContinueRequest.EndContinueRequest(builder)); }
public static int CreateContinueRequest(FlatBufferBuilder builder, ContinueAction action = 0, uint target_address = 0) { builder.StartObject(2); ContinueRequest.AddTargetAddress(builder, target_address); ContinueRequest.AddAction(builder, action); return ContinueRequest.EndContinueRequest(builder); }
public void AttachVenue(TLMessageMediaVenue mediaVenue) { if (mediaVenue == null) { return; } CloseEditor(true); ContinueAction.SafeInvoke(mediaVenue); }
public void AttchLocation(GeoCoordinate location) { if (location == null) { return; } if (location.Latitude == 0.0 && location.Longitude == 0.0) { return; } var mediaGeo = new TLMessageMediaGeo { Geo = new TLGeoPoint { Lat = new TLDouble(location.Latitude), Long = new TLDouble(location.Longitude) } }; CloseEditor(); ContinueAction.SafeInvoke(mediaGeo); }
public void AttachGeoLive(GeoCoordinate location, TimerSpan timer) { if (location == null) { return; } if (location.Latitude == 0.0 && location.Longitude == 0.0) { return; } var mediaGeoLive = new TLMessageMediaGeoLive { Geo = new TLGeoPoint { Lat = new TLDouble(location.Latitude), Long = new TLDouble(location.Longitude) }, Period = new TLInt(timer.Seconds) }; CloseEditor(); ContinueAction.SafeInvoke(mediaGeoLive); }
private static void OnScheduledWork(object state) { Scheduler scheduler = (Scheduler)state; bool flag = FxTrace.Trace.ShouldTraceToTraceSource(TraceEventLevel.Informational); Guid empty = Guid.Empty; Guid newId = Guid.Empty; if (flag) { empty = DiagnosticTrace.ActivityId; newId = scheduler.callbacks.WorkflowInstanceId; FxTrace.Trace.SetAndTraceTransfer(newId, true); if (scheduler.resumeTraceRequired && TD.WorkflowActivityResumeIsEnabled()) { TD.WorkflowActivityResume(newId.ToString()); } } scheduler.callbacks.ThreadAcquired(); RequestedAction continueAction = Scheduler.continueAction; bool flag2 = false; while (object.ReferenceEquals(continueAction, Scheduler.continueAction)) { if (scheduler.IsIdle || scheduler.isPausing) { flag2 = true; break; } System.Activities.Runtime.WorkItem firstWorkItem = scheduler.firstWorkItem; if ((scheduler.workItemQueue != null) && (scheduler.workItemQueue.Count > 0)) { scheduler.firstWorkItem = scheduler.workItemQueue.Dequeue(); } else { scheduler.firstWorkItem = null; } continueAction = scheduler.callbacks.ExecuteWorkItem(firstWorkItem); } bool flag3 = false; bool isCompleted = false; if (flag2 || object.ReferenceEquals(continueAction, abortAction)) { scheduler.isPausing = false; scheduler.isRunning = false; scheduler.NotifyWorkCompletion(); flag3 = true; if (flag) { isCompleted = scheduler.callbacks.IsCompleted; } scheduler.callbacks.SchedulerIdle(); } else if (!object.ReferenceEquals(continueAction, yieldSilentlyAction)) { NotifyUnhandledExceptionAction action2 = (NotifyUnhandledExceptionAction)continueAction; scheduler.isRunning = false; scheduler.NotifyWorkCompletion(); flag3 = true; if (flag) { isCompleted = scheduler.callbacks.IsCompleted; } scheduler.callbacks.NotifyUnhandledException(action2.Exception, action2.Source); } if (flag) { if (flag3) { if (isCompleted) { if (TD.WorkflowActivityStopIsEnabled()) { TD.WorkflowActivityStop(newId.ToString()); } } else if (TD.WorkflowActivitySuspendIsEnabled()) { TD.WorkflowActivitySuspend(newId.ToString()); } } DiagnosticTrace.ActivityId = empty; } }
public static void AddAction(FlatBufferBuilder builder, ContinueAction action) { builder.AddSbyte(0, (sbyte)(action), 0); }
public void Done() { _isOpen = false; NotifyOfPropertyChange(() => IsOpen); var logString = new StringBuilder(); logString.AppendLine("photos"); var messages = new List <PhotoFile>(); var randomIndex = new Dictionary <long, long>(); var groupedId = IsGrouped && Items.Count(x => !x.IsButton) > 1 ? TLLong.Random() : null; TLInt commonDate = null; for (var i = 0; i < Items.Count; i++) { var item = Items[i]; if (item.IsButton) { continue; } if (item.Message != null) { if (item.Message.RandomIndex == 0) { logString.AppendLine(string.Format("random_id=0 msg={0} original_file_name={1}", item.Message, item.File.Name)); continue; } if (i % Constants.MaxGroupedMediaCount == 0) { groupedId = IsGrouped && Items.Count(x => !x.IsButton) > 1 ? TLLong.Random() : null; } if (randomIndex.ContainsKey(item.Message.RandomIndex)) { logString.AppendLine(string.Format("random_id exists msg={0} original_file_name={1}", item.Message, item.File.Name)); continue; } var message73 = item.Message as TLMessage73; if (message73 != null) { if (commonDate == null) { commonDate = message73.Date; } message73.Date = commonDate; message73.GroupedId = groupedId; } randomIndex[item.Message.RandomIndex] = item.Message.RandomIndex; var mediaPhoto = item.Message.Media as TLMessageMediaPhoto28; var photo = mediaPhoto.Photo as TLPhoto28; var size = photo.Sizes.First() as TLPhotoSize; var fileLocation = size.Location; var fileName = String.Format("{0}_{1}_{2}.jpg", fileLocation.VolumeId, fileLocation.LocalId, fileLocation.Secret); item.Message.Media.UploadingProgress = 0.001; if (item.TimerSpan != null && item.TimerSpan.Seconds > 0) { var message25 = item.Message as TLMessage25; if (message25 != null) { message25.NotListened = true; } var ttlMessageMedia = item.Message.Media as ITTLMessageMedia; if (ttlMessageMedia != null) { ttlMessageMedia.TTLSeconds = new TLInt(item.TimerSpan.Seconds); } } messages.Add(item); logString.AppendLine(string.Format("msg={0} file_name={1}", item.Message, fileName)); } else if (item.DecryptedTuple != null) { if (item.DecryptedTuple.Item1.RandomIndex == 0) { logString.AppendLine(string.Format("random_id=0 msg={0} original_file_name={1}", item.DecryptedTuple.Item1, item.File.Name)); continue; } if (randomIndex.ContainsKey(item.DecryptedTuple.Item1.RandomIndex)) { logString.AppendLine(string.Format("random_id exists msg={0} original_file_name={1}", item.DecryptedTuple.Item1, item.File.Name)); continue; } var decryptedMessage73 = item.DecryptedTuple.Item1 as TLDecryptedMessage73; if (decryptedMessage73 != null) { if (commonDate == null) { commonDate = decryptedMessage73.Date; } decryptedMessage73.Date = commonDate; decryptedMessage73.GroupedId = groupedId; } randomIndex[item.DecryptedTuple.Item1.RandomIndex] = item.DecryptedTuple.Item1.RandomIndex; var mediaPhoto = ((TLDecryptedMessage)item.DecryptedTuple.Item1).Media as TLDecryptedMessageMediaPhoto; var fileLocation = mediaPhoto.Photo as TLEncryptedFile; var fileName = String.Format("{0}_{1}_{2}.jpg", fileLocation.Id, fileLocation.DCId, fileLocation.AccessHash); mediaPhoto.StorageFile = null; mediaPhoto.UploadingProgress = 0.001; messages.Add(item); logString.AppendLine(string.Format("msg={0} file_name={1}", item.DecryptedTuple.Item1, fileName)); } else { logString.AppendLine(string.Format("empty msg original_file_name={0}", item.File.Name)); } } #if MULTIPLE_PHOTOS Log.Write(logString.ToString()); #endif ContinueAction.SafeInvoke(messages); }
private static void OnScheduledWork(object state) { Scheduler scheduler = (Scheduler) state; bool flag = FxTrace.Trace.ShouldTraceToTraceSource(TraceEventLevel.Informational); Guid empty = Guid.Empty; Guid newId = Guid.Empty; if (flag) { empty = DiagnosticTrace.ActivityId; newId = scheduler.callbacks.WorkflowInstanceId; FxTrace.Trace.SetAndTraceTransfer(newId, true); if (scheduler.resumeTraceRequired && TD.WorkflowActivityResumeIsEnabled()) { TD.WorkflowActivityResume(newId.ToString()); } } scheduler.callbacks.ThreadAcquired(); RequestedAction continueAction = Scheduler.continueAction; bool flag2 = false; while (object.ReferenceEquals(continueAction, Scheduler.continueAction)) { if (scheduler.IsIdle || scheduler.isPausing) { flag2 = true; break; } System.Activities.Runtime.WorkItem firstWorkItem = scheduler.firstWorkItem; if ((scheduler.workItemQueue != null) && (scheduler.workItemQueue.Count > 0)) { scheduler.firstWorkItem = scheduler.workItemQueue.Dequeue(); } else { scheduler.firstWorkItem = null; } continueAction = scheduler.callbacks.ExecuteWorkItem(firstWorkItem); } bool flag3 = false; bool isCompleted = false; if (flag2 || object.ReferenceEquals(continueAction, abortAction)) { scheduler.isPausing = false; scheduler.isRunning = false; scheduler.NotifyWorkCompletion(); flag3 = true; if (flag) { isCompleted = scheduler.callbacks.IsCompleted; } scheduler.callbacks.SchedulerIdle(); } else if (!object.ReferenceEquals(continueAction, yieldSilentlyAction)) { NotifyUnhandledExceptionAction action2 = (NotifyUnhandledExceptionAction) continueAction; scheduler.isRunning = false; scheduler.NotifyWorkCompletion(); flag3 = true; if (flag) { isCompleted = scheduler.callbacks.IsCompleted; } scheduler.callbacks.NotifyUnhandledException(action2.Exception, action2.Source); } if (flag) { if (flag3) { if (isCompleted) { if (TD.WorkflowActivityStopIsEnabled()) { TD.WorkflowActivityStop(newId.ToString()); } } else if (TD.WorkflowActivitySuspendIsEnabled()) { TD.WorkflowActivitySuspend(newId.ToString()); } } DiagnosticTrace.ActivityId = empty; } }