示例#1
0
        private void _editorController_Closing(object sender, CancelDocumentEventArgs e)
        {
            try
            {
                _logger.Info(string.Format("Closed document: {0}", e.Document.ActiveFile.Name));

                _service.UnregisterDocument(e.Document);
            }
            catch (Exception ex)
            {
                _logger.Debug(ex, "Unexpected exception when closing the editor");
                throw;
            }
        }
示例#2
0
        private void _editorController_Closing(object sender, CancelDocumentEventArgs e)
        {
            try
            {
                if (e.Document.Mode != EditingMode.Translation)
                {
                    return;
                }
                _service.UnregisterDocument(e.Document);

                foreach (var file in e.Document.Files)
                {
                    _logger.Info(string.Format("Closed document: {0}", file.Name));
                }
            }
            catch (Exception ex)
            {
                _logger.Debug(ex, "Unexpected exception when closing the editor");
            }
        }
 private void EditorController_Closing(object sender, CancelDocumentEventArgs e)
 {
     _processedFilesList.Clear();
     _shouldExit = true;
 }
示例#4
0
        private static void EditorController_Closing(object sender, CancelDocumentEventArgs e)
        {
            try
            {
                #region  |  remove handlers  |

                if (e.Document != null)
                {
                    e.Document.SegmentsConfirmationLevelChanged -= TrackedDocumentEvents.ConfirmationLevelChanged;
                    e.Document.SegmentsTranslationOriginChanged -= TrackedDocumentEvents.TranslationOriginChanged;
                    e.Document.ActiveSegmentChanged             -= TrackedDocumentEvents.ActiveSegmentChanged;
                    e.Document.ContentChanged           -= TrackedDocumentEvents.ContentChanged;
                    e.Document.Selection.Changed        -= TrackedDocumentEvents.SelectionChanged;
                    e.Document.Selection.Source.Changed -= TrackedDocumentEvents.SourceChanged;
                    e.Document.Selection.Target.Changed -= TrackedDocumentEvents.TargetChanged;
                }

                #endregion

                Tracked.TrackerLastActivity = DateTime.Now;

                //Timer4ProjectArea.Stop();

                if (Tracked.TrackingState != Tracked.TimerState.Started &&
                    Tracked.TrackingState != Tracked.TimerState.Paused || Tracked.ActiveDocument == null)
                {
                    return;
                }

                try
                {
                    var projectFile = Tracked.ActiveDocument.Files.FirstOrDefault();

                    if (projectFile != null && Tracked.DictCacheDocumentItems.ContainsKey(projectFile.Id.ToString()))
                    {
                        var trackedDocuments = Tracked.DictCacheDocumentItems[projectFile.Id.ToString()];

                        foreach (var document in trackedDocuments.Documents)
                        {
                            document.DatetimeClosed = DateTime.Now;
                            document.DocumentTimer.Stop();
                        }

                        TrackedController.TrackActiveChanges(trackedDocuments);
                        TrackedController.NewProjectActivity(trackedDocuments);

                        Tracked.TarckerCheckNewActivityAdded = false;

                        //FilterViewerControl(Tracked.TarckerCheckNewActivityId);
                        if (Tracked.DictCacheDocumentItems.ContainsKey(projectFile.Id.ToString()))
                        {
                            Tracked.DictCacheDocumentItems.Remove(projectFile.Id.ToString());
                        }
                    }

                    OnEditorControllerClosing();
                }
                finally
                {
                    #region  |  null tracker cache  |

                    if (Tracked.DictCacheDocumentItems.Count == 0)
                    {
                        Tracked.Reset();
                        Tracked.TrackingState = Tracked.TimerState.Stopped;
                    }

                    Tracked.TrackingIsDirtyC0 = true;
                    Tracked.TrackingIsDirtyC1 = true;
                    Tracked.TrackingIsDirtyC2 = true;

                    #endregion
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                //Timer4ProjectArea.Start();
            }
        }
        private static void EditorController_Closing(object sender, CancelDocumentEventArgs e)
        {
            try
            {
                //stop timer for duration of processing
                //Timer4ProjectArea.Stop();

                if ((Tracked.TrackingState != Tracked.TimerState.Started &&
                     Tracked.TrackingState != Tracked.TimerState.Unpaused &&
                     Tracked.TrackingState != Tracked.TimerState.Paused) ||
                    e.Document.ActiveFile.Id.ToString() != Tracked.TrackerDocumentId)
                {
                    return;
                }
                try
                {
                    Tracked.TrackingTimer.Stop();

                    var trackerProject    = Helper.GetTrackerProjectFromDocument(e.Document);
                    var clientProfileInfo = Common.GetClientFromId(trackerProject.ClientId);

                    #region  |  add existing activity   |

                    var trackerProjectActivity = new TrackerProjectActivity
                    {
                        Id   = Guid.NewGuid().ToString(),
                        Name = e.Document.ActiveFile.Name
                    };


                    #region  |  get activity type  |

                    var activitiesType      = Tracked.Preferences.ActivitiesTypes[0];
                    ClientActivityType type = null;
                    foreach (var activityType in Tracked.Preferences.ActivitiesTypes)
                    {
                        if (string.Compare(activityType.Name, e.Document.Mode.ToString(),
                                           StringComparison.OrdinalIgnoreCase) != 0)
                        {
                            continue;
                        }
                        activitiesType = activityType;
                        if (clientProfileInfo != null)
                        {
                            foreach (var clientActivityType in clientProfileInfo.ClientActivities)
                            {
                                if (activitiesType.Id != clientActivityType.IdActivity)
                                {
                                    continue;
                                }
                                if (clientActivityType.Activated)
                                {
                                    type = clientActivityType;
                                }
                                break;
                            }
                        }
                        break;
                    }
                    #endregion
                    trackerProjectActivity.ActivityTypeId   = activitiesType.Id;
                    trackerProjectActivity.ActivityTypeName = activitiesType.Name;
                    if (type != null)
                    {
                        trackerProjectActivity.ActivityTypeClientId = type.Id;
                    }

                    trackerProjectActivity.Billable = activitiesType.Billable;
                    if (clientProfileInfo != null)
                    {
                        trackerProjectActivity.ClientId   = clientProfileInfo.Id;
                        trackerProjectActivity.ClientName = clientProfileInfo.ClientName;
                    }
                    trackerProjectActivity.Currency  = activitiesType.Currency;
                    trackerProjectActivity.DateStart = Tracked.TrackingStart;
                    Tracked.TrackingEnd            = DateTime.Now;
                    trackerProjectActivity.DateEnd = Tracked.TrackingEnd;

                    trackerProjectActivity.Description          = activitiesType.Description;
                    trackerProjectActivity.HourlyRate           = activitiesType.HourlyRate;
                    trackerProjectActivity.HourlyRateAdjustment = 0;
                    trackerProjectActivity.Invoiced             = false;
                    trackerProjectActivity.InvoicedDate         = Common.DateNull;


                    trackerProjectActivity.Quantity = Convert.ToDecimal(trackerProjectActivity.DateEnd.Subtract(trackerProjectActivity.DateStart).TotalHours);
                    var quantityElapsed = Convert.ToDecimal(Math.Round(Tracked.TrackingTimer.Elapsed.TotalHours, 3));//todo
                    if (quantityElapsed < trackerProjectActivity.Quantity)
                    {
                        trackerProjectActivity.Quantity = quantityElapsed;
                    }

                    trackerProjectActivity.Status               = @"New";
                    trackerProjectActivity.Total                = Math.Round(trackerProjectActivity.Quantity * trackerProjectActivity.HourlyRate, 2);
                    trackerProjectActivity.TrackerProjectId     = trackerProject.Id;
                    trackerProjectActivity.TrackerProjectName   = trackerProject.Name;
                    trackerProjectActivity.TrackerProjectStatus = trackerProject.ProjectStatus;

                    if (Tracked.Preferences.TrackerConfirmActivities)
                    {
                        var trackProjectActivity = new Dialogs.TrackProjectActivity();


                        var trackerProjects = new List <TrackerProject> {
                            trackerProject
                        };


                        trackerProjectActivity.TrackerProjectId     = trackerProject.Id;
                        trackerProjectActivity.TrackerProjectName   = trackerProject.Name;
                        trackerProjectActivity.TrackerProjectStatus = trackerProject.ProjectStatus;


                        trackProjectActivity.Project  = trackerProject;
                        trackProjectActivity.Projects = trackerProjects;
                        trackProjectActivity.Activity = trackerProjectActivity;


                        trackProjectActivity.IsEdit = true;
                        trackProjectActivity.ShowDialog();
                        if (!trackProjectActivity.Saved)
                        {
                            return;
                        }

                        trackerProjectActivity.ActivityTypeClientId = trackProjectActivity.Activity.ActivityTypeClientId;
                        trackerProjectActivity.ActivityTypeId       = trackProjectActivity.Activity.ActivityTypeId;
                        trackerProjectActivity.ActivityTypeName     = trackProjectActivity.Activity.ActivityTypeName;

                        trackerProjectActivity.Billable   = trackProjectActivity.Activity.Billable;
                        trackerProjectActivity.ClientId   = trackProjectActivity.Activity.ClientId;
                        trackerProjectActivity.ClientName = trackProjectActivity.Activity.ClientName;

                        trackerProjectActivity.Currency  = trackProjectActivity.Activity.Currency;
                        trackerProjectActivity.DateEnd   = trackProjectActivity.Activity.DateEnd;
                        trackerProjectActivity.DateStart = trackProjectActivity.Activity.DateStart;

                        trackerProjectActivity.Description = trackProjectActivity.Activity.Description;

                        trackerProjectActivity.HourlyRate           = trackProjectActivity.Activity.HourlyRate;
                        trackerProjectActivity.HourlyRateAdjustment = trackProjectActivity.Activity.HourlyRateAdjustment;

                        trackerProjectActivity.Invoiced     = trackProjectActivity.Activity.Invoiced;
                        trackerProjectActivity.InvoicedDate = trackProjectActivity.Activity.InvoicedDate;

                        trackerProjectActivity.Name     = trackProjectActivity.Activity.Name;
                        trackerProjectActivity.Quantity = trackProjectActivity.Activity.Quantity;

                        trackerProjectActivity.TrackerProjectId     = trackProjectActivity.Activity.TrackerProjectId;
                        trackerProjectActivity.TrackerProjectName   = trackProjectActivity.Activity.TrackerProjectName;
                        trackerProjectActivity.TrackerProjectStatus = trackProjectActivity.Activity.TrackerProjectStatus;

                        trackerProjectActivity.Total = trackProjectActivity.Activity.Total;

                        trackerProject.ProjectActivities.Add(trackerProjectActivity);

                        SettingsSerializer.SaveSettings(Tracked.Preferences);

                        Tracked.TarckerCheckNewActivityAdded = true;
                        Tracked.TarckerCheckNewActivityId    = trackerProjectActivity.Id;
                    }
                    else
                    {
                        trackerProject.ProjectActivities.Add(trackerProjectActivity);

                        SettingsSerializer.SaveSettings(Tracked.Preferences);

                        Tracked.TarckerCheckNewActivityAdded = true;
                        Tracked.TarckerCheckNewActivityId    = trackerProjectActivity.Id;
                    }

                    #endregion
                }
                finally
                {
                    #region  |  null tracker cache  |


                    Tracked.Reset();

                    Tracked.TrackingState = Tracked.TimerState.Started;

                    //ProjectActivityStartTrackerEnabled = false;
                    //ProjectActivityStopTrackerEnabled = true;

                    Tracked.TrackingIsDirtyC0 = true;
                    Tracked.TrackingIsDirtyC1 = true;
                    Tracked.TrackingIsDirtyC2 = true;



                    #endregion
                }
            }
            catch (Exception)
            {
                // ignored
            }
            finally
            {
                //restart timer
                //Timer4ProjectArea.Start();
            }
        }
示例#6
0
        private void _editorController_Closing(object sender, CancelDocumentEventArgs e)
        {
            try
            {
                if (e.Document.Mode != EditingMode.Translation) return;
                _service.UnregisterDocument(e.Document);

                foreach (var file in e.Document.Files)
                {
                    _logger.Info(string.Format("Closed document: {0}", file.Name));
                }
            }
            catch (Exception ex)
            {
                _logger.Debug(ex, "Unexpected exception when closing the editor");
                _emailService.SendLogFile();
            }
        }
示例#7
0
        private void _editorController_Closing(object sender, CancelDocumentEventArgs e)
        {
            try
            {
                _logger.Info(string.Format("Closed document: {0}", e.Document.ActiveFile.Name));

                _service.UnregisterDocument(e.Document);
            }
            catch (Exception ex)
            {
                _logger.Debug(ex, "Unexpected exception when closing the editor");
                throw;
            }
        }