Esempio n. 1
0
        public bool SaveCrmActivity(CrmActivityInfo req)
        {
            if (string.IsNullOrWhiteSpace(Provider.CurrentMember.Id))
            {
                throw new APIException("Access is denied");
            }

            var cr = new CrmActivity();

            req.CopyPropertiesWithSameName(cr);
            cr.MemberId = Provider.CurrentMember.Id;
            cr.Save();

            Job j = new Job()
            {
                Command           = JobCommands.NewTicket,
                Executer          = JobExecuters.Staff,
                ExecuterId        = Provider.CurrentMember.StaffMemberId.IsEmpty() ? Provider.Api.GetNextIdleStaffMemberId(Departments.Marketing) : Provider.CurrentMember.StaffMemberId,
                Name              = "New ticket from " + cr.Member().FullName,
                RelatedEntityName = "CrmActivity",
                RelatedEntityId   = cr.Id,
                State             = JobStates.NotStarted
            };

            j.Save();

            return(true);
        }
Esempio n. 2
0
        private static void UpdateActivitiesFromGoogleCalendar(ILog logger, CalendarService service, IActivityService activityService, string calendarId)
        {
            Events events = FindEvents(logger, service, calendarId);

            if (events != null)
            {
                logger.Info($"Update Calendar Id from Google:{calendarId} count:{events.Items.Count} ");
                foreach (var item in events.Items)
                {
                    var activity = new CrmActivity();
                    try
                    {
                        bool updated = false;
                        if (!string.IsNullOrWhiteSpace(item.ICalUID))
                        {
                            activity = activityService.GetActivityById(item.ICalUID);
                        }
                        //activity = activityService.GetActivityById("23e8f5c6-283c-4826-9e80-e5dce15fdefc");
                        if (!string.IsNullOrWhiteSpace(activity.ActivityId))
                        {
                            var startDateTime = activity.StartDate + activity.StartTime;
                            var endDateTime   = activity.EndDate + activity.EndTime;
                            if (startDateTime != item.Start.DateTime.Value)
                            {
                                updated            = true;
                                activity.StartDate = item.Start.DateTime.Value.Date;
                                activity.StartTime = item.Start.DateTime.Value.TimeOfDay;
                            }
                            if (endDateTime != item.End.DateTime.Value)
                            {
                                updated            = true;
                                activity.StartDate = item.Start.DateTime.Value.Date;
                                activity.StartTime = item.Start.DateTime.Value.TimeOfDay;
                            }
                            if (!string.IsNullOrWhiteSpace(item.Summary) && !item.Summary.Contains(activity.Topic))
                            {
                                updated        = true;
                                activity.Topic = item.Summary;
                            }
                            if (!string.IsNullOrWhiteSpace(item.Description) && (!item.Description.Contains(activity.Detail)))
                            {
                                updated         = true;
                                activity.Detail = item.Description;
                            }
                        }

                        if (updated)
                        {
                            activityService.UpdateActivity(activity);
                        }
                    }
                    catch (Exception e)
                    {
                        logger.Error($"Update Activity Id:{activity.ActivityId} CalendarId:{calendarId}  Error:{e.Message}{e.StackTrace}");
                    }
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Updates the activity
        /// </summary>
        /// <param name="activity">Activity</param>
        public virtual void UpdateActivity(CrmActivity activity)
        {
            if (activity == null)
            {
                throw new ArgumentNullException(nameof(activity));
            }

            _activityRepository.Update(activity);
        }
Esempio n. 4
0
        /// <summary>
        /// Marks activity as deleted
        /// </summary>
        /// <param name="activity">Activity</param>
        public virtual void DeleteActivity(CrmActivity activity)
        {
            if (activity == null)
            {
                throw new ArgumentNullException(nameof(activity));
            }

            activity.IsDelete = true;
            UpdateActivity(activity);
        }