/// <summary>
        /// Updates the employee
        /// </summary>
        /// <param name="employee">Employee</param>
        public virtual void UpdateEmployee(SmEmployee employee)
        {
            if (employee == null)
            {
                throw new ArgumentNullException(nameof(employee));
            }

            _employeeRepository.Update(employee);
        }
        /// <summary>
        /// Marks employee as deleted
        /// </summary>
        /// <param name="employee">Employee</param>
        public virtual void DeleteEmployee(SmEmployee employee)
        {
            if (employee == null)
            {
                throw new ArgumentNullException(nameof(employee));
            }

            employee.IsDelete = true;
            UpdateEmployee(employee);
        }
示例#3
0
        private static void CreateNewCalendar(ILog logger, CalendarService service, SmEmployee smEmployee)
        {
            string calendarId  = IsFacebookCalendarType() ? smEmployee.Facebook : smEmployee.Email;
            var    newCalendar = new Google.Apis.Calendar.v3.Data.Calendar()
            {
                Summary  = $"[{smEmployee.EmpNo}] {smEmployee.EmpFirstName} {smEmployee.EmpLastName} ({smEmployee.EmpNickName})",
                Location = $"{smEmployee.AddrLine} แขวง{smEmployee.SubDistrict} เขต{smEmployee.District} จังหวัด{smEmployee.Province} {smEmployee.PostCode}",
                TimeZone = GetTimeZone(),
                Id       = calendarId
            };

            CalendarsResource.InsertRequest insertCalendar = service.Calendars.Insert(newCalendar);
            try
            {
                insertCalendar.Execute();
            }
            catch (Exception e)
            {
                logger.Error($"Insert Calendar:{smEmployee.Email} Error:{e.Message}{e.StackTrace}");
            }
        }
示例#4
0
        private static void UpdateNewEvent(CalendarService service, string calendarId, SmEmployee employee, CrmActivityDto activity, List <EventAttendee> eventAttendees, string eventId, ILog logger, string notes)
        {
            var overrides = new List <EventReminder>();

            if (GetEventReminderEmail())
            {
                overrides.Add(new EventReminder {
                    Method = "email", Minutes = GetEventReminderEmailMinutes()
                });
            }
            if (GetEventReminderSMS())
            {
                overrides.Add(new EventReminder {
                    Method = "sms", Minutes = GetEventReminderSMSMinutes()
                });
            }


            string summary     = $"{activity.Topic} [ความสำคัญ:{activity.PriorityEnumName}][สถานะ:{activity.StatusEnumName}] ".Replace(System.Environment.NewLine, string.Empty);
            var    endDateTime = activity.EndDateTime == null ? activity.StartDateTime : activity.EndDateTime.Value;
            Event  newEvent    = new Event()
            {
                ICalUID     = activity.ActivityId,
                Summary     = summary,
                Location    = activity.RelateActName,
                Description = activity.Detail,
                Created     = activity.ModifiedDate,
                ColorId     = GetPriorityColor(activity.PriorityEnumName),
                Status      = GetStatus(activity.StatusEnumName),
                Start       = new EventDateTime()
                {
                    DateTime = activity.StartDateTime,
                    TimeZone = GetTimeZone(),
                },
                End = new EventDateTime()
                {
                    DateTime = endDateTime,
                    TimeZone = GetTimeZone(),
                },


                Updated    = DateTime.Now,
                Attendees  = eventAttendees,
                Visibility = "default",
                Organizer  = new Event.OrganizerData
                {
                    Email       = employee.Facebook,
                    DisplayName = $"{employee.EmpFirstName} {employee.EmpLastName}",
                },
                Reminders = new Event.RemindersData()
                {
                    UseDefault = false,
                    Overrides  = overrides
                },
                ConferenceData = new ConferenceData
                {
                    Notes = notes
                }
            };

            EventsResource.UpdateRequest updateRequest = service.Events.Update(newEvent, calendarId, eventId);
            try
            {
                Event updatedEvent = updateRequest.Execute();
                logger.Info($"CalendarId:{calendarId} Event Id:{newEvent.ICalUID} has been updated successful.");
            }
            catch (Exception e)
            {
                logger.Error($"Update Event Id:{newEvent.ICalUID} CalendarId:{calendarId}  Error:{e.Message}{e.StackTrace}");
            }
        }
示例#5
0
        private static void CreateOrUpdateEventsToGoogleCalendar(ILog logger, CalendarService service, SmEmployee item, IActivityService activityService, string calendarId)
        {
            var activities = activityService.GetActivityByOwner(item.EmpId, CheckMinutesModifiedDate(), GetBeforeMinutesModifiedDate());

            foreach (var activity in activities)
            {
                var    followers = activityService.GetEmailsFollowID(activity.ActivityId);
                var    notes     = GetNotes(activityService, activity.ActivityId);
                string eventId   = FindEventId(logger, service, calendarId, activity.ActivityId);
                if (!string.IsNullOrEmpty(eventId))
                {
                    UpdateNewEvent(service, calendarId, item, activity, followers, eventId, logger, notes);
                }
                else
                {
                    CreateNewEvent(service, calendarId, item, activity, followers, logger, notes);
                }
            }
        }