コード例 #1
0
        private CorrespondenceModel GetCorrespondence()
        {
            var model = new CorrespondenceModel(new Corresponcence()
            {
                ID          = Guid.NewGuid(),
                Date        = DateTime.Now,
                OwnerID     = _enquiry.Enquiry.ID,
                OwnerType   = "Enquiry",
                EmailType   = "Email",
                Message     = "",
                FromAddress = AccessService.Current.User.EmailAddress,
                UserID      = AccessService.Current.User.ID
            });

            if (_enquiry.PrimaryContact != null)
            {
                model.ToAddress = _enquiry.PrimaryContact.Contact.Email;
                model.ContactTo = _enquiry.PrimaryContact;
                model.Correspondence.ContactToID = _enquiry.PrimaryContact.Contact.ID;
            }

            if (_isResend)
            {
                model.Documents = new ObservableCollection <Document>(Correspondence.Documents);
            }

            return(model);
        }
コード例 #2
0
ファイル: EmailView.xaml.cs プロジェクト: syatin003/Wpf
        public EmailView(CorrespondenceModel correspondence)
        {
            InitializeComponent();
            DataContext = _viewModel = new EmailViewModel(correspondence);

            Owner = Application.Current.MainWindow;
        }
コード例 #3
0
        private CorrespondenceModel CopyCorrespondence(CorrespondenceModel correspondence)
        {
            var model = new CorrespondenceModel(new Corresponcence()
            {
                ID        = Guid.NewGuid(),
                Date      = DateTime.Now,
                OwnerID   = _enquiry.Enquiry.ID,
                OwnerType = "Enquiry",
                EmailType = "Email",
                UserID    = AccessService.Current.User.ID
            })
            {
                CCAddress           = correspondence.CCAddress,
                FromAddress         = correspondence.FromAddress,
                ToAddress           = correspondence.ToAddress,
                Message             = correspondence.Message,
                SendMailToCcAddress = correspondence.SendMailToCcAddress,
                Subject             = correspondence.Subject,
                EmailType           = correspondence.EmailType,
                CorresponcenceType  = correspondence.CorresponcenceType,
                ContactTo           = correspondence.ContactTo
            };

            return(model);
        }
コード例 #4
0
        public SendEventMailView(EventModel model, CorrespondenceModel correspondence = null)
        {
            InitializeComponent();

            //ClipboardEx.ClipboardHandlers.Clear();

            //ClipboardHandler clipboardHandlerRtf = new ClipboardHandler();
            //clipboardHandlerRtf.ClipboardDataFormat = DataFormats.Rtf;
            //clipboardHandlerRtf.DocumentFormatProvider = new RtfFormatProvider();

            //ClipboardHandler clipboardHandlerHtml = new ClipboardHandler();
            //clipboardHandlerHtml.ClipboardDataFormat = DataFormats.Html;
            //clipboardHandlerHtml.DocumentFormatProvider = new HtmlFormatProvider();

            //ClipboardHandler clipboardHandlerText = new ClipboardHandler();
            //clipboardHandlerText.ClipboardDataFormat = DataFormats.Text;
            //clipboardHandlerText.DocumentFormatProvider = new TxtFormatProvider();

            //ClipboardEx.ClipboardHandlers.Add(clipboardHandlerRtf);
            //ClipboardEx.ClipboardHandlers.Add(clipboardHandlerHtml);
            //ClipboardEx.ClipboardHandlers.Add(clipboardHandlerText);

            DataContext = ViewModel = new SendEventMailViewModel(model, correspondence);

            ViewModel.PropertyChanged += ViewModelOnPropertyChanged;

            Owner = Application.Current.MainWindow;

            Loaded += OnSendEmailViewLoaded;
        }
コード例 #5
0
        private void ProcessMail(CorrespondenceModel mail)
        {
            _isResend = (mail != null);

            Correspondence = (_isResend) ? CopyCorrespondence(mail) : GetCorrespondence();
            Correspondence.PropertyChanged += MailOnPropertyChanged;
            this.PropertyChanged           += SendEnquiryMailViewModel_PropertyChanged;
        }
コード例 #6
0
 public SendEmailPreView(CorrespondenceModel correspondence, string message, string mainTemplate = null)
 {
     InitializeComponent();
     DataContext = _viewModel = new SendEmailPreViewModel(correspondence, message, mainTemplate);
     RadWindowInteropHelper.SetAllowTransparency(this, false);
     Loaded += SendEmailPreView_Loaded;
     Owner   = Application.Current.MainWindow;
 }
コード例 #7
0
        public SendEmailView(ObservableCollection <MemberModel> members, CorrespondenceModel correspondence = null)
        {
            InitializeComponent();
            DataContext = _viewModel = new SendEmailViewModel(members, correspondence);
            _viewModel.PropertyChanged += ViewModelOnPropertyChanged;

            Loaded += OnSendEmailViewLoaded;
            Owner   = Application.Current.MainWindow;
        }
コード例 #8
0
        private void ShowCorrespondenceCommandExecuted(CorrespondenceModel obj)
        {
            RaisePropertyChanged("DisableParentWindow");

            var window = new SendEnquiryMailView(_enquiry, obj);

            window.ShowDialog();

            RaisePropertyChanged("EnableParentWindow");
        }
コード例 #9
0
        private void OpenEmailCommandExecute(CorrespondenceModel model)
        {
            RaisePropertyChanged("DisableParentWindow");

            var window = new EmailView(model);

            window.ShowDialog();

            RaisePropertyChanged("EnableParentWindow");
        }
コード例 #10
0
        /// <summary>
        /// Método para registrar las peronas como remitentes, destinatarios o usuarios del sistema
        /// </summary>
        /// <param name="person"> Entidad persona </param>
        /// <returns> Bandera de creación del usuario </returns>
        public bool InsCorrespondence(CorrespondenceModel correspondence)
        {
            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                SqlCommand     cmd         = connection.CreateCommand();
                SqlTransaction transaction = null;
                try
                {
                    connection.Open();
                    transaction     = connection.BeginTransaction();
                    cmd.Transaction = transaction;
                    cmd.CommandText = "develop.Ins_Correspondence";
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@Descripcion", SqlDbType.VarChar, 100));
                    cmd.Parameters["@Descripcion"].Value = correspondence.Description;
                    cmd.Parameters.Add(new SqlParameter("@Type_Correspondence", SqlDbType.VarChar, 50));
                    cmd.Parameters["@Type_Correspondence"].Value = correspondence.TypeCorrespondence;
                    cmd.Parameters.Add(new SqlParameter("@Sender_Id", SqlDbType.Int));
                    cmd.Parameters["@Sender_Id"].Value = correspondence.SenderId;
                    cmd.Parameters.Add(new SqlParameter("@Addressee_Id", SqlDbType.Int));
                    cmd.Parameters["@Addressee_Id"].Value = correspondence.AddresseeId;
                    cmd.Parameters.Add(new SqlParameter("@Creator_Person", SqlDbType.Int));
                    cmd.Parameters["@Creator_Person"].Value = correspondence.CreatorPerson;
                    cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.BigInt));
                    cmd.Parameters["@Id"].Direction = ParameterDirection.Output;
                    cmd.ExecuteNonQuery();
                    int correspondence_Id = (int)(long)cmd.Parameters["@Id"].Value;
                    cmd.Parameters.Clear();

                    cmd.CommandText = "develop.Ins_Correspondence_Files";
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.VarChar, 100));
                    cmd.Parameters["@Name"].Value = correspondence.CorrespondenceFiles.Name;
                    cmd.Parameters.Add(new SqlParameter("@File_Type", SqlDbType.VarChar, 20));
                    cmd.Parameters["@File_Type"].Value = correspondence.CorrespondenceFiles.FileType;
                    cmd.Parameters.Add(new SqlParameter("@File_Path", SqlDbType.VarChar, 250));
                    cmd.Parameters["@File_Path"].Value = correspondence.CorrespondenceFiles.FilePath;
                    cmd.Parameters.Add(new SqlParameter("@Correspondence_Id", SqlDbType.Int));
                    cmd.Parameters["@Correspondence_Id"].Value = correspondence_Id;
                    cmd.Parameters.Add(new SqlParameter("@Creator_Person", SqlDbType.Int));
                    cmd.Parameters["@Creator_Person"].Value = correspondence.CreatorPerson;
                    cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.BigInt));
                    cmd.Parameters["@Id"].Direction = ParameterDirection.Output;
                    cmd.ExecuteNonQuery();

                    transaction.Commit();
                    return(true);
                }
                catch (ArgumentException ex)
                {
                    transaction.Rollback();
                    return(false);
                }
            }
        }
コード例 #11
0
        public SendEnquiryMailView(EnquiryModel model, CorrespondenceModel correspondence = null)
        {
            InitializeComponent();
            DataContext = ViewModel = new SendEnquiryMailViewModel(model, correspondence);

            Owner = Application.Current.MainWindow;

            ViewModel.PropertyChanged += ViewModelOnPropertyChanged;

            Loaded += OnSendEnquiryViewLoaded;
        }
コード例 #12
0
        public SendEnquiryMailViewModel(EnquiryModel enquiryModel, CorrespondenceModel mail)
        {
            _enquiry = enquiryModel;

            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve <IDataUnitLocator>();

            _crmDataUnit = dataUnitLocator.ResolveDataUnit <ICrmDataUnit>();

            SubmitCommand = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand = new RelayCommand(CancelCommandExecuted);

            ProcessMail(mail);
        }
コード例 #13
0
        public static async Task <bool> SendEmail(CorrespondenceModel correspondence, string mainTemplate = null)
        {
            try
            {
                var settings = PrepareSettings();

                if (settings.HasErrors)
                {
                    PopupService.ShowMessage("Please check your SMTP settings in Admin module", MessageType.Failed);
                    return(false);
                }

                using (var smtpClient = new SmtpClient(settings.Server))
                {
                    smtpClient.Port                  = 587;
                    smtpClient.EnableSsl             = settings.EnableSsl;
                    smtpClient.UseDefaultCredentials = false;
                    smtpClient.Credentials           = new NetworkCredential(settings.Username, settings.Password);

                    using (var message = new MailMessage())
                    {
                        message.From            = new MailAddress(correspondence.FromAddress);
                        message.IsBodyHtml      = true;
                        message.Subject         = correspondence.Subject;
                        message.SubjectEncoding = Encoding.UTF8;

                        if (mainTemplate != null)
                        {
                            ApplyMainTemplate(correspondence.Message, mainTemplate, message, correspondence.Correspondence.EmailHeader);
                        }
                        else
                        {
                            message.Body = correspondence.Message;
                        }
                        message.BodyEncoding = Encoding.UTF8;
                        message.To.Add(correspondence.ToAddress);

                        await smtpClient.SendMailAsync(message);

                        return(true);
                    }
                }
            }
            catch (Exception)
            {
                //PopupService.ShowMessage(ex.Message, MessageType.Failed);
                return(false);
            }
        }
コード例 #14
0
        public HttpResponseMessage Post(CorrespondenceModel corresp)
        {
            if (ModelState.IsValid)
            {
                //Get the orderNumber from the header.  With this, we can prefix the name of the file and save it
                string saveFolder          = System.Configuration.ConfigurationManager.AppSettings["DocumentFolder"];
                HttpResponseMessage result = null;

                SIMSEntities.correspondence newCorr = db.correspondences.Create();
                newCorr.corr_date         = corresp.CorrDate;
                newCorr.corr_disp         = corresp.CorrDisp;
                newCorr.corr_type         = corresp.CorrType;
                newCorr.order_id          = corresp.OrderId;
                newCorr.user_id           = corresp.UserId;
                newCorr.customer_id       = corresp.CustomerId;
                newCorr.correspondence_id = 0;

                db.correspondences.Add(newCorr);

                db.SaveChanges();

                var postedFile = "invoi" + newCorr.correspondence_id + ".pdf";

                newCorr.corr_filename = saveFolder + @"\" + postedFile;

                db.SaveChanges();

                if (!System.IO.Directory.Exists(HttpContext.Current.Server.MapPath("~/" + saveFolder + "/")))
                {
                    System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/" + saveFolder + "/"));
                }
                var filePath = HttpContext.Current.Server.MapPath("~/" + saveFolder + "/" + postedFile);

                var streamArray = corresp.FileStream.Split(',');

                byte[] docBytes = Convert.FromBase64String(streamArray[1]);

                File.WriteAllBytes(filePath, docBytes);

                result = Request.CreateResponse(HttpStatusCode.OK, newCorr.corr_filename);

                return(result);
            }


            return(Request.CreateResponse(HttpStatusCode.BadRequest));
        }
コード例 #15
0
ファイル: SendEmailViewModel.cs プロジェクト: syatin003/Wpf
        private CorrespondenceModel GetCorrespondence()
        {
            Message = "";
            var model = new CorrespondenceModel(new Corresponcence()
            {
                ID          = Guid.NewGuid(),
                Date        = DateTime.Now,
                OwnerType   = "Membership",
                EmailType   = "Email",
                Message     = "",
                FromAddress = AccessService.Current.User.EmailAddress,
                ToAddress   = MembersHavingValidEmail.Select(member => member.Contact.Email).FirstOrDefault(),
                UserID      = AccessService.Current.User.ID
            });

            return(model);
        }
コード例 #16
0
        public SendEmailPreViewModel(CorrespondenceModel correspondence, string message, string mainTemplate)
        {
            if (mainTemplate != null)
            {
                String messageBody = mainTemplate;
                messageBody = messageBody
                              .Replace("{#EmailHeader}", correspondence.Correspondence.EmailHeader != null && correspondence.Correspondence.EmailHeader.Content != null ? correspondence.Correspondence.EmailHeader.Content : string.Empty)
                              .Replace("{#EmailFooter}", Properties.Settings.Default.CRMEmailFooter)
                              .Replace("{#TemplateColor}", HexColorCodeFromRGB(Properties.Settings.Default.CRMEmailTemplateColor))
                              .Replace("{#Date}", String.Format("{0:dddd dd MMMM}", DateTime.Now))
                              .Replace("{#InternalTemplate}", message);
                var appPath = (string)ApplicationSettings.Read("ImagesPath");
                if (string.IsNullOrWhiteSpace(appPath))
                {
                    return;
                }
                var fullPathHeaderImage = string.Concat(appPath, correspondence.Correspondence.EmailHeader != null && correspondence.Correspondence.EmailHeader.ImageName != null ? correspondence.Correspondence.EmailHeader.ImageName : string.Empty);
                var fullPathFooterImage = string.Concat(appPath, Properties.Settings.Default.CRMEmailFooterImage);

                if (File.Exists(fullPathHeaderImage))
                {
                    byte[] imageBytes = File.ReadAllBytes(fullPathHeaderImage);
                    messageBody = messageBody.Replace("{#HeaderImage}", fullPathHeaderImage);
                }
                else
                {
                    messageBody = messageBody.Replace("<img src='{#HeaderImage}' border='0' width='580' alt='' />", string.Empty);
                }
                if (File.Exists(fullPathFooterImage))
                {
                    byte[] imageBytes = File.ReadAllBytes(fullPathFooterImage);
                    messageBody = messageBody.Replace("{#FooterImage}", fullPathFooterImage);
                }
                else
                {
                    messageBody = messageBody.Replace("<img src='{#FooterImage}' width='580' alt='' />", string.Empty);
                }

                Message = messageBody;
            }
            else
            {
                Message = message;
            }
        }
コード例 #17
0
        private static void PrepareCcContacts(CorrespondenceModel correspondence, MailMessage message)
        {
            if (correspondence.SendMailToCcAddress && !string.IsNullOrWhiteSpace(correspondence.CCAddress))
            {
                string pattern = @"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|"
                                 + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)"
                                 + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$";

                var regex = new Regex(pattern, RegexOptions.IgnoreCase);

                string[] emails = correspondence.CCAddress.Split(',');

                if (emails.Any())
                {
                    emails.Where(email => !string.IsNullOrWhiteSpace(email) && regex.IsMatch(email))
                    .ForEach(message.To.Add);
                }
            }
        }
コード例 #18
0
ファイル: CorrespondenceBL.cs プロジェクト: Xerbeth/ALPHA_TIC
        /// <summary>
        /// Método para registrar persona
        /// </summary>
        /// <param name="person"> Objeto con la información de la persona a registrar </param>
        /// <returns> Resultado de la transacción </returns>
        public TransactionDto <bool> InsCorrespondence(CorrespondenceDto correspondence)
        {
            TransactionDto <bool> transaction = new TransactionDto <bool>();

            transaction.Data = false;
            try
            {
                string _class  = MethodBase.GetCurrentMethod().ReflectedType.Name;
                string _method = MethodBase.GetCurrentMethod().Name;
                _logger.LogInformation("Acceso al " + _class + "/" + _method + " con los siguientes parametros: " + JsonSerializer.Serialize(correspondence));
                CorrespondenceModel correspondenceModel = new CorrespondenceModel();
                correspondenceModel.Description        = correspondence.Description;
                correspondenceModel.TypeCorrespondence = correspondence.TypeCorrespondence;
                correspondenceModel.SenderId           = correspondence.SenderId;
                correspondenceModel.AddresseeId        = correspondence.AddresseeId;
                correspondenceModel.CreatorPerson      = correspondence.CreatorPerson;
                correspondenceModel.CreationDate       = DateTime.Now;

                correspondenceModel.CorrespondenceFiles.Name          = correspondence.CorrespondenceFiles.Name;
                correspondenceModel.CorrespondenceFiles.FileType      = correspondence.CorrespondenceFiles.FileType;
                correspondenceModel.CorrespondenceFiles.FilePath      = correspondence.CorrespondenceFiles.FilePath;
                correspondenceModel.CorrespondenceFiles.CreatorPerson = correspondence.CreatorPerson;


                var insCorrespondence = _correspondenceRepository.InsCorrespondence(correspondenceModel);
                if (!insCorrespondence)
                {
                    transaction.Message = "No existen registrar la correspondencia.";
                    return(transaction);
                }

                transaction.Data    = true;
                transaction.Message = "Correspondencia registrada correctamente.";
                transaction.Status  = Status.Success;
            }
            catch (ArgumentException ex)
            {
                transaction.Message = ex.Message;
            }

            return(transaction);
        }
コード例 #19
0
        private void AddDefaultEventReminderCommandExecuted()
        {
            if (Event.EventType.EventTypeTODOs.Any())
            {
                Event.EventType.EventTypeTODOs.ToList().ForEach(async eventTypeTODO =>
                {
                    var eventReminder = new EventReminderModel(new Data.Model.EventReminder()
                    {
                        ID               = Guid.NewGuid(),
                        EventID          = Event.Event.ID,
                        DateDue          = eventTypeTODO.RelatedDateType == Convert.ToInt32(EventManagementSystem.Enums.Admin.RelatedDateType.EventDate) ? Event.Date.AddDays(eventTypeTODO.NumberOfDays) : Event.Event.CreationDate.AddDays(eventTypeTODO.NumberOfDays),
                        CreatedByUserID  = AccessService.Current.User.ID,
                        WhatToDo         = eventTypeTODO.WhatToDo,
                        Status           = Convert.ToBoolean(Convert.ToInt32(EventManagementSystem.Enums.Events.ReminderStatus.Active)),
                        AssignedToUserID = eventTypeTODO.AssignedToUserID,
                        User             = eventTypeTODO.User1,
                        EventTypeToDoID  = eventTypeTODO.ID
                    });

                    Event.EventReminders.Add(eventReminder);
                    _eventDataUnit.EventRemindersRepository.Add(eventReminder.EventReminder);

                    var primaryContact = eventReminder.EventReminder.Event != null ? eventReminder.EventReminder.Event.Contact == null ? String.Empty : "Primary Contact: " + eventReminder.EventReminder.Event.Contact.FirstName + " "
                                         + eventReminder.EventReminder.Event.Contact.LastName : String.Empty;

                    var msg = "Default Event Reminder" + "\n" + "Created by " + eventReminder.CreatedByUser.FirstName + " " +
                              eventReminder.CreatedByUser.LastName + " at " + DateTime.Now + "\n" +
                              "Event Name: " + eventReminder.EventName + "\n" + primaryContact + "\n" + eventReminder.WhatToDo;
                    var email = new CorrespondenceModel(new Corresponcence()
                    {
                        ID          = Guid.NewGuid(),
                        Date        = DateTime.Now,
                        FromAddress = eventReminder.CreatedByUser.EmailAddress,
                        ToAddress   = eventReminder.AssignedToUser.EmailAddress,
                        Subject     = "Default Event Reminder",
                        Message     = msg,
                    });

                    await EmailService.SendEmail(email, null, null);
                });
            }
        }
コード例 #20
0
ファイル: SendEmailViewModel.cs プロジェクト: syatin003/Wpf
        private CorrespondenceModel CopyCorrespondence(CorrespondenceModel correspondence)
        {
            var model = new CorrespondenceModel(new Corresponcence()
            {
                ID        = Guid.NewGuid(),
                Date      = DateTime.Now,
                OwnerType = "Membership",
                EmailType = "Email",
                UserID    = AccessService.Current.User.ID
            })
            {
                FromAddress        = correspondence.FromAddress,
                ToAddress          = correspondence.ToAddress,
                Message            = correspondence.Message,
                Subject            = correspondence.Subject,
                EmailType          = correspondence.EmailType,
                CorresponcenceType = correspondence.CorresponcenceType
            };

            return(model);
        }
コード例 #21
0
        private CorrespondenceModel GetCorrespondence()
        {
            var model = new CorrespondenceModel(new Corresponcence()
            {
                ID          = Guid.NewGuid(),
                Date        = DateTime.Now,
                OwnerID     = _event.Event.ID,
                OwnerType   = "Event", // TODO: Remove
                EmailType   = "Email",
                Message     = "",
                FromAddress = AccessService.Current.User.EmailAddress,
                UserID      = AccessService.Current.User.ID
            });

            if (_event.PrimaryContact != null)
            {
                model.ToAddress = _event.PrimaryContact.Contact.Email;
                model.ContactTo = _event.PrimaryContact;
                model.Correspondence.ContactToID = _event.PrimaryContact.Contact.ID;
            }

            return(model);
        }
コード例 #22
0
ファイル: SendEmailViewModel.cs プロジェクト: syatin003/Wpf
        public SendEmailViewModel(ObservableCollection <MemberModel> members, CorrespondenceModel correspondence)
        {
            Members = members;

            string pattern = @"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|"
                             + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)"
                             + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$";

            var regex = new Regex(pattern, RegexOptions.IgnoreCase);

            MembersHavingValidEmail = new ObservableCollection <MemberModel>(members.Where(member => !string.IsNullOrWhiteSpace(member.Contact.Email) && regex.IsMatch(member.Contact.Email)));

            MembersHavingInvalidEmail = new ObservableCollection <MemberModel>(members.Where(member => string.IsNullOrWhiteSpace(member.Contact.Email) || !regex.IsMatch(member.Contact.Email)));

            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve <IDataUnitLocator>();

            _membershipDataUnit = dataUnitLocator.ResolveDataUnit <IMembershipDataUnit>();

            PreviewCommand = new RelayCommand(PreviewCommandExecuted, PreviewCommandCanExecute);
            SubmitCommand  = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand  = new RelayCommand(CancelCommandExecuted);
            ProcessEmail(correspondence);
        }
コード例 #23
0
        private static bool PrepareAttachments(CorrespondenceModel model, MailMessage message)
        {
            var appPath = (string)ApplicationSettings.Read("DocumentsPath");

            if (string.IsNullOrWhiteSpace(appPath) || !model.Documents.Any())
            {
                return(true);
            }

            var response = false;

            foreach (var document in model.Documents)
            {
                var fullPath = string.Concat(appPath, document.Path);

                if (File.Exists(fullPath))
                {
                    var attachment = new Attachment(fullPath, MediaTypeNames.Application.Octet);
                    ContentDisposition disposition = attachment.ContentDisposition;
                    disposition.CreationDate     = File.GetCreationTime(fullPath);
                    disposition.ModificationDate = File.GetLastWriteTime(fullPath);
                    disposition.ReadDate         = File.GetLastAccessTime(fullPath);
                    disposition.FileName         = Path.GetFileName(fullPath);
                    disposition.Size             = new FileInfo(fullPath).Length;
                    disposition.DispositionType  = DispositionTypeNames.Attachment;
                    message.Attachments.Add(attachment);
                    response = true;
                }
                else
                {
                    RadWindow.Alert(Resources.MESSAGE_DOCUMENT_NOT_FOUND);
                    response = false;
                }
            }
            return(response);
        }
コード例 #24
0
        private async void SubmitCommandExecuted()
        {
            if (!IsEditMode)
            {
                if (AreEventsVisible)
                {
                    EventReminder.EventReminder.EventID = SelectedEvent.Event.ID;
                    EventReminder.EventReminder.Event   = SelectedEvent.Event;
                }
                else
                {
                    _event.EventReminders.Add(EventReminder);
                }
                _eventDataUnit.EventRemindersRepository.Add(EventReminder.EventReminder);

                var primaryContact = EventReminder.EventReminder.Event != null ? EventReminder.EventReminder.Event.Contact == null ? String.Empty : "Primary Contact: " + EventReminder.EventReminder.Event.Contact.FirstName + " "
                                     + EventReminder.EventReminder.Event.Contact.LastName : String.Empty;

                var msg = "Event-Reminder" + "\n" + "Created by " + EventReminder.CreatedByUser.FirstName + " " +
                          EventReminder.CreatedByUser.LastName + " at " + DateTime.Now + "\n" +
                          "Event Name: " + EventReminder.EventName + "\n" + primaryContact + "\n" + EventReminder.WhatToDo;
                var email = new CorrespondenceModel(new Corresponcence()
                {
                    ID          = Guid.NewGuid(),
                    Date        = DateTime.Now,
                    FromAddress = EventReminder.CreatedByUser.EmailAddress,
                    ToAddress   = EventReminder.AssignedToUser.EmailAddress,
                    Subject     = "Event-Reminder",
                    Message     = msg,
                });

                await EmailService.SendEmail(email, null, null);

                if (AreEventsVisible)
                {
                    _originalEvent = SelectedEvent.Clone();
                    SelectedEvent.EventReminders.Add(EventReminder);
                    var eventUpdates = LoggingService.FindDifference(_originalEvent, SelectedEvent);
                    if (!SelectedEvent.EventUpdates.Any())
                    {
                        var updates = await _eventDataUnit.EventUpdatesRepository.GetAllAsync(x => x.EventID == SelectedEvent.Event.ID);

                        SelectedEvent.EventUpdates = new ObservableCollection <EventUpdate>(updates.OrderByDescending(x => x.Date));
                    }
                    ProcessUpdates(SelectedEvent, eventUpdates);

                    await _eventDataUnit.SaveChanges();
                }
            }
            else
            {
                _eventReminder.AssignedToUser = AssignedToUser;
                _eventReminder.EventReminder.AssignedToUserID = AssignedToUser.ID;
                EventReminder.EventReminder.LastEditDate      = DateTime.Now;
                if (AreEventsVisible)
                {
                    if (_originalEvent.Event.ID != _selectedEvent.Event.ID)
                    {
                        _originalEvent = _selectedEvent.Clone();
                    }

                    EventReminder.EventReminder.Event = SelectedEvent.Event;
                    SelectedEvent.EventReminders.Where(x => x.EventReminder == _eventReminder.EventReminder).FirstOrDefault().AssignedToUser = AssignedToUser;
                    var eventUpdates = LoggingService.FindDifference(_originalEvent, SelectedEvent);
                    if (!SelectedEvent.EventUpdates.Any())
                    {
                        var updates = await _eventDataUnit.EventUpdatesRepository.GetAllAsync(x => x.EventID == SelectedEvent.Event.ID);

                        SelectedEvent.EventUpdates = new ObservableCollection <EventUpdate>(updates.OrderByDescending(x => x.Date));
                    }
                    ProcessUpdates(_selectedEvent, eventUpdates);

                    await _eventDataUnit.SaveChanges();
                }
                else
                {
                    _eventDataUnit.EventRemindersRepository.SetEntityModified(_eventReminder.EventReminder);
                }
                EventReminder.Refresh();
            }
        }
コード例 #25
0
 public EmailViewModel(CorrespondenceModel mail)
 {
     Correspondence = mail;
 }
コード例 #26
0
        private async void SubmitCommandExecuted()
        {
            if (!_isEditMode)
            {
                FollowUp.TakenByUser    = TakenByUser;
                FollowUp.AssignedToUser = AssignedToUser;
                if (AreEnquiriesVisible)
                {
                    FollowUp.FollowUp.Enquiry = SelectedEnquiry.Enquiry;
                }
                else if (!_isToDo)
                {
                    _enquiry.FollowUps.Add(FollowUp);
                }

                _crmDataUnit.FollowUpsRepository.Add(FollowUp.FollowUp);

                if (!_isToDo)
                {
                    var primaryContact = FollowUp.FollowUp.Enquiry != null ? FollowUp.FollowUp.Enquiry.Contact == null ? String.Empty : "Primary Contact: " + FollowUp.FollowUp.Enquiry.Contact.FirstName + " "
                                         + FollowUp.FollowUp.Enquiry.Contact.LastName : String.Empty;

                    var msg = "Follow-Up" + "\n" + "Created by " + FollowUp.TakenByUser.FirstName + " " +
                              FollowUp.TakenByUser.LastName + " at " + DateTime.Now + "\n" +
                              "Event Name: " + FollowUp.EnquiryName + "\n" + primaryContact + "\n" + FollowUp.WhatToDo;
                    var email = new CorrespondenceModel(new Corresponcence()
                    {
                        ID          = Guid.NewGuid(),
                        Date        = DateTime.Now,
                        FromAddress = FollowUp.TakenByUser.EmailAddress,
                        ToAddress   = FollowUp.AssignedToUser.EmailAddress,
                        Subject     = "Follow-Up",
                        Message     = msg,
                    });

                    await EmailService.SendEmail(email, null, null);

                    if (AreEnquiriesVisible)
                    {
                        _originalEnquiry = SelectedEnquiry.Clone();
                        _selectedEnquiry.FollowUps.Add(FollowUp);
                        var diff = LoggingService.FindDifference(_originalEnquiry, SelectedEnquiry, out ActivityChanged, out FoolowUpsChanged);
                        if (!SelectedEnquiry.EnquiryUpdates.Any())
                        {
                            var updates = await _crmDataUnit.EnquiryUpdatesRepository.GetAllAsync(x => x.EnquiryID == SelectedEnquiry.Enquiry.ID);

                            SelectedEnquiry.EnquiryUpdates = new ObservableCollection <EnquiryUpdate>(updates.OrderByDescending(x => x.Date));
                        }

                        ProcessUpdates(_selectedEnquiry, diff);
                        if (!_addToActivity)
                        {
                            await _crmDataUnit.SaveChanges();
                        }
                    }
                }
            }
            else
            {
                _followUp.AssignedToUser         = AssignedToUser;
                _followUp.FollowUp.UserDueToDoID = AssignedToUser.ID;
                _followUp.FollowUp.LastEditDate  = DateTime.Now;
                if (AreEnquiriesVisible)
                {
                    if (_originalEnquiry.Enquiry.ID != _selectedEnquiry.Enquiry.ID)
                    {
                        _originalEnquiry = _selectedEnquiry.Clone();
                    }

                    FollowUp.FollowUp.Enquiry = SelectedEnquiry.Enquiry;
                    SelectedEnquiry.FollowUps.Where(x => x.FollowUp == _followUp.FollowUp).FirstOrDefault().AssignedToUser = AssignedToUser;
                    var diff = LoggingService.FindDifference(_originalEnquiry, SelectedEnquiry, out ActivityChanged, out FoolowUpsChanged);
                    if (!SelectedEnquiry.EnquiryUpdates.Any())
                    {
                        var updates = await _crmDataUnit.EnquiryUpdatesRepository.GetAllAsync(x => x.EnquiryID == SelectedEnquiry.Enquiry.ID);

                        SelectedEnquiry.EnquiryUpdates = new ObservableCollection <EnquiryUpdate>(updates.OrderByDescending(x => x.Date));
                    }
                    ProcessUpdates(_selectedEnquiry, diff);

                    if (!_addToActivity)
                    {
                        await _crmDataUnit.SaveChanges();
                    }
                }
                else
                {
                    _crmDataUnit.FollowUpsRepository.SetEntityModified(_followUp.FollowUp);
                }
                FollowUp.Refresh();
            }
        }
コード例 #27
0
ファイル: SendEmailViewModel.cs プロジェクト: syatin003/Wpf
        private async void SubmitCommandExecuted()
        {
            IsBusy = true;
            if (!_isResend)
            {
                Correspondence.CorresponcenceType = _corresponcenceType;
            }
            //   if (Correspondence.SaveOnClientsRecord)
            //    AddCorrespondenceOnMembersRecord();

            var membersEmailNotSent = new List <MemberModel>();

            foreach (var member in MembersHavingValidEmail)
            {
                var  newMemberCorrespondence = new CorrespondenceModel(GetCorrespondenceByMember(member));
                bool success = await EmailService.SendEmail(newMemberCorrespondence, MainEmailTemplate.MailTemplate.Template);

                if (success)
                {
                    // add entry into update log
                    var update = new MembershipUpdate()
                    {
                        ID       = Guid.NewGuid(),
                        MemberID = member.Member.ID,
                        Date     = DateTime.Now,
                        Message  = string.Format("Email was sent to {0}", member.Contact.Email),
                        UserID   = AccessService.Current.User.ID,
                        OldValue = null,
                        NewValue = member.Contact.Email,
                        ItemId   = newMemberCorrespondence.Correspondence.ID,
                        ItemType = "Correspondence",
                        Field    = "Email",
                        Action   = Convert.ToInt32(UpdateAction.Added)
                    };
                    // If false don't save Correspondence.
                    // Make ItemId = null;
                    if (!Correspondence.SaveOnClientsRecord)
                    {
                        update.ItemId = null;
                    }
                    _membershipDataUnit.MembershipUpdatesRepository.Add(update);
                }
                else
                {
                    membersEmailNotSent.Add(member);
                }
            }
            _membershipDataUnit.CorresponcencesRepository.RevertChanges(Correspondence.SaveOnClientsRecord);
            await _membershipDataUnit.SaveChanges();

            IsBusy = false;

            string confirmText = Members.Count + " members selected";

            confirmText = MembersHavingInvalidEmail.Count > 0 ?
                          (confirmText + ", " + MembersHavingInvalidEmail.Count + " have no email addresses") : confirmText;

            confirmText = MembersHavingValidEmail.Except(membersEmailNotSent).Count() > 0 ? (confirmText + ", " + MembersHavingValidEmail.Except(membersEmailNotSent).Count() + " sent successfully") :

                          confirmText = membersEmailNotSent.Count > 0 ? (confirmText + ", " + membersEmailNotSent.Count + " not sent due to error having following names :- " +

                                                                         string.Join("\n", membersEmailNotSent.Select(x => x.Contact.FirstName).ToArray())) : confirmText;

            RaisePropertyChanged("DisableParentWindow");

            RadWindow.Alert(new DialogParameters
            {
                Owner   = Application.Current.MainWindow,
                Content = new TextBlock()
                {
                    Text = confirmText, TextWrapping = TextWrapping.Wrap, Width = 300
                }
            });

            RaisePropertyChanged("EnableParentWindow");

            RaisePropertyChanged("CloseDialog");
        }