public void RenderEmailFolders()
    {
        var html = new StringBuilder();

        // Get the data
        var service = new MessagesService();
        var folders = service.GetEmailFolders();


        // Group the data
        var standardFolderTypes = new List<int> { 1, 2, 3, 4 };
        var standardFolders = folders.Where(c => standardFolderTypes.Contains(c.MailFolderTypeID));

        var personalFolderTypes = new List<int> { 0 };
        var personalFolders = folders.Where(c => personalFolderTypes.Contains(c.MailFolderTypeID));


        // Render the standard folders first
        html.AppendFormat("<ul class='nav nav-pills nav-stacked'>");
        foreach(var folder in standardFolders)
        {
            // Determine if we have any uinread messages in this folder
            var hasUnreadMessages = folder.UnreadCount > 0;
            var cssClass = (hasUnreadMessages) ? "active" : string.Empty;
            var unreadCountDisplay = (hasUnreadMessages) ? string.Format("&nbsp;({0})", folder.UnreadCount) : string.Empty;
            
            // Render the list item
            html.AppendFormat("<li class='{0}'><a href='Messages.aspx?f={3}'>{1}{2}</a></li>",
                cssClass,
                folder.Name,
                unreadCountDisplay,
                folder.MailFolderID);
        }
        html.AppendFormat("</ul>");


        // Render the personal folders next
        html.AppendFormat("<ul class='nav nav-pills nav-stacked'>");
        foreach(var folder in personalFolders)
        {
            // Determine if we have any uinread messages in this folder
            var hasUnreadMessages = folder.UnreadCount > 0;
            var cssClass = (hasUnreadMessages) ? "active" : string.Empty;
            var unreadCountDisplay = (hasUnreadMessages) ? string.Format("&nbsp;({0})", folder.UnreadCount) : string.Empty;
            
            // Render the list item
            html.AppendFormat("<li class='{0}'><a href='Messages.aspx?f={3}'>{1}{2}</a></li>",
                cssClass,
                folder.Name,
                unreadCountDisplay,
                folder.MailFolderID);
        }

        html.AppendFormat("</ul>");


        // Write the HTML to the screen
        var writer = new HtmlTextWriter(Response.Output);
        writer.Write(html.ToString());
    }
示例#2
0
        public void GetAllUnreadMessagesShouldReturnExactNumberOfUnreadedMessages()
        {
            var currOrder = new Order();
            var messages  = new List <Message>()
            {
                new Message {
                    Order = currOrder, Text = "Hello", IsRead = false, CreatedOn = DateTime.UtcNow, IsAdmin = false
                },
                new Message {
                    Order = currOrder, Text = "Are you there?", IsRead = false, CreatedOn = DateTime.UtcNow, IsAdmin = false
                },
                new Message {
                    Order = currOrder, Text = "Hi", IsRead = true, CreatedOn = DateTime.UtcNow, IsAdmin = false
                },
                new Message {
                    Order = currOrder, Text = "I need info", IsRead = false, CreatedOn = DateTime.UtcNow, IsAdmin = false
                },
            };

            currOrder.Messages = messages;

            var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>()
                                 .UseInMemoryDatabase("GetAllUnreadMessages");
            var db = new ApplicationDbContext(optionsBuilder.Options);

            db.Orders.Add(currOrder);
            db.SaveChanges();

            var ordersService = new OrdersService(db);

            var messagesService = new MessagesService(db, ordersService);

            var collection = messagesService.GetAllUnreadMessages().First();
            var result     = collection.CountUnreadMessages;

            Assert.Equal(3, result);
        }
        public void ExportToExcel()
        {
            if (Documents != null && Documents.Count > 0)
            {
                // Choose path and name to save
                string fileName = FileSystemService.SaveFile("(*.xls;*.xlsx) | *.xls;*.xlsx");

                if (!string.IsNullOrEmpty(fileName))
                {
                    // Create file
                    // Collect info
                    List <Document> documentsList = new List <Document>();
                    var             documentTypes = DocumentService.ReadDocumentTypes();

                    foreach (var item in Documents)
                    {
                        if (documentTypes != null)
                        {
                            item.Document.name = documentTypes.FirstOrDefault(d => d.id == item.Document.type).descriptionRU;
                        }

                        documentsList.Add(item.Document);
                    }

                    // Formate document
                    ArchiveVolumeRegistryService.FormateDocument(fileName, documentsList);

                    // Open folder with generated file
                    FolderService.OpenFolder(fileName.Substring(0, fileName.LastIndexOf("\\")));
                }
            }
            else
            {
                MessagesService.Show("ЭКСПОРТ В EXCEL", "Список документов пуст");
            }
        }
示例#4
0
        public async Task GetAllMessagesBetweenUsersIdShouldNotReturnDeletedMessages()
        {
            var options = new DbContextOptionsBuilder <AlexandriaDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            var db = new AlexandriaDbContext(options);
            await db.Messages.AddRangeAsync(
                new Message
            {
                AuthorId   = "author1",
                ReceiverId = "receiver1",
                Content    = "content1",
                IsDeleted  = true,
            },
                new Message
            {
                AuthorId   = "receiver1",
                ReceiverId = "author1",
                Content    = "content01",
            },
                new Message
            {
                AuthorId   = "author2",
                ReceiverId = "receiver2",
                Content    = "content2",
            });

            await db.SaveChangesAsync();

            var messagesService = new MessagesService(db);

            var result = await messagesService.GetAllMessagesBetweenUsersAsync <MessageTestModel>("author1", "receiver1");

            Assert.Single(result);
        }
示例#5
0
        public async Task GetCountOfAllUnReadMessagesByUserId_WithNullUser_ShouldRetyrnArgumentNullException()
        {
            var             context    = SteuDbContextInMemoryFactory.InitializeContext();
            MessagesService service    = this.IntializeMessagesService(context);
            var             repository = new EfDeletableEntityRepository <Message>(context);

            var message = new Message()
            {
                Id          = "messageId",
                Content     = "content",
                OrderId     = "orderId",
                RecipientId = "recipientId",
                Replays     = new List <Replay>(),
                SenderId    = "senderId",
                IsRead      = false,
            };

            await repository.AddAsync(message);

            await repository.SaveChangesAsync();

            Assert.Throws <ArgumentNullException>(()
                                                  => service.GetCountOfAllUnReadMessagesByUserId(null));
        }
示例#6
0
        public async Task GetCountOfAllUnReadMessagesByUserId_WithCorrectData_ReturnNumberOfUnreadMsg()
        {
            var             context    = SteuDbContextInMemoryFactory.InitializeContext();
            MessagesService service    = this.IntializeMessagesService(context);
            var             repository = new EfDeletableEntityRepository <Message>(context);

            var message = new Message()
            {
                Id          = "messageId",
                Content     = "content",
                OrderId     = "orderId",
                RecipientId = "recipientId",
                Replays     = new List <Replay>(),
                SenderId    = "senderId",
                IsRead      = false,
            };
            await repository.AddAsync(message);

            await repository.SaveChangesAsync();

            var actualResult = service.GetCountOfAllUnReadMessagesByUserId("recipientId");

            Assert.Equal("1", actualResult);
        }
        public async Task MessageContentShouldBeCorrect()
        {
            var list           = new List <Message>();
            var mockRepository = new Mock <IDeletableEntityRepository <Message> >();

            mockRepository
            .Setup(x => x.All())
            .Returns(list.AsQueryable());

            mockRepository
            .Setup(x => x.AddAsync(It.IsAny <Message>()))
            .Callback((Message message) => list.Add(message));

            var service = new MessagesService(mockRepository.Object);

            await service.CreateAsync(new CreateMessageDTO
            {
                ReceiverId = "a",
                SenderId   = "b",
                Content    = "test",
            });

            Assert.Equal("test", list.FirstOrDefault(x => x.ReceiverId == "a" && x.SenderId == "b")?.Content);
        }
        private async Task GetMessages()
        {
            var result = await MessagesService.GetMessages();

            try
            {
                if (result.Response != null)
                {
                    Messages = result.Response.Value.ToList();
                }
                if (result.Error != null)
                {
                    Error = result.Error;
                }
            }
            catch (Exception ex)
            {
                Error = new ApiError()
                {
                    Details = "Null result returned. The message service did not return any results.",
                    Message = ex.Message
                };
            }
        }
        private void ChangeStatus(int mode)
        {
            if (SelectedListServ != null)
            {
                switch (mode)
                {
                case 1:     // Plus status
                    if (SelectedListServ.statusid != 14)
                    {
                        DataBaseClient.UpdateListServ(SelectedListServ.id, 14, DateTime.Now);
                    }
                    else
                    {
                        MessagesService.Show("Оповещение", "У реестра наивысшый статус");
                    }
                    break;

                case 2:     // Minus status
                    if (SelectedListServ.statusid != 12)
                    {
                        DataBaseClient.UpdateListServ(SelectedListServ.id, 12);
                    }
                    else
                    {
                        MessagesService.Show("Оповещение", "У реестра нижайщий статус");
                    }
                    break;
                }

                UpdateListServ();
            }
            else
            {
                MessagesService.Show("Оповещение", "Не выбран почтовый реестр");
            }
        }
示例#10
0
    public void RenderMoveToEmailFolders()
    {
        var html = new StringBuilder();

        // Get the data
        var service = new MessagesService();
        var folders = service.GetEmailFolders();


        // Group the data
        var moveToFolderTypes = new List<int> { 0, 1 };
        var mvoeToFolders = folders.Where(c => moveToFolderTypes.Contains(c.MailFolderTypeID));


        // Render the personal folders next
        html.AppendFormat("<ul class='dropdown-menu'>");

        if(mvoeToFolders.Count() > 0)
        {
            foreach(var folder in mvoeToFolders)
            {            
                // Render the list item
                html.AppendFormat("<li><a href='javascript:;' onclick='messagelist.moveSelectedIDsToFolder({0})'>{1}</a></li>",
                    folder.MailFolderID,
                    folder.Name);
            }

            // Render the divider
            html.AppendFormat("<li class='divider'></li>");
        }
            
        // Finally, render a 'Create new folder' link
        html.AppendFormat("<li><a href='javascript:;' onclick='folders.openCreateModal()'>Create new...</a></li>");

        html.AppendFormat("</ul>");


        // Write the HTML to the screen
        var writer = new HtmlTextWriter(Response.Output);
        writer.Write(html.ToString());
    }
示例#11
0
        private void PutContractTo1C()
        {
            AppJournal.Write("Contract", "Put contract to 1c", true);

            if (AllFieldsSet())
            {
                string    result     = "";
                int       baseType   = 2;
                CompanyEF company    = DataBaseClient.ReadCompany(companyId);
                Contracts contract   = new Contracts();
                string    companyBin = Contract.company.bin;

                if (_1CTransport.SearchCompany(companyBin, baseType) == null)
                {
                    companyBin = companyBin.PadLeft(12, '0');
                }

                contract = _1CTransport.SearchContract(companyBin, Contract.number, baseType = (int)Contract.brokerid == 4 ? 3 : (int)Contract.brokerid);

                if (contract == null)
                {
                    contract = new Contracts();

                    contract.CtlgName         = "Договор №" + Contract.number + " от " + Contract.agreementdate;
                    contract.CtlgCode         = "";
                    contract.ClientIIN        = companyBin;
                    contract.ContractNumber   = Contract.number.Replace("с", "c");
                    contract.ContracDate      = Contract.agreementdate;
                    contract.ContractType     = "СПокупателем";
                    contract.Settlements      = "";
                    contract.StartDate        = null;
                    contract.TerminationDate  = null;
                    contract.Comments         = ".NET Автоматизация";
                    contract.СontractСurrency = Contract.currency.code;

                    result = _1CTransport.CreateContract(baseType, contract);
                }
                else
                {
                    result = "exist";
                }

                BankAccounts bankAccount = new BankAccounts();
                bankAccount = _1CTransport.SearchBankAccount(company.iik, companyBin, baseType = Contract.brokerid == 4 ? 3 : (int)Contract.brokerid);

                if (bankAccount == null)
                {
                    _1CTransport.CreateBankAccount(company.iik, companyBin, Contract.currency.code, baseType = Contract.brokerid == 4 ? 3 : (int)Contract.brokerid, Contract.bank.company.bik);
                }

                if (result.Contains("ok"))
                {
                    MessagesService.Show("РЕЗУЛЬТАТ ЗАНЕСЕНИЯ В 1С", "Договор создан успешно");
                }
                else if (result.Contains("exist"))
                {
                    MessagesService.Show("РЕЗУЛЬТАТ ЗАНЕСЕНИЯ В 1С", "Договор с таким номером уже существует в 1С");
                }
                else
                {
                    MessagesService.Show("РЕЗУЛЬТАТ ЗАНЕСЕНИЯ В 1С", "При создании договора возникла ошибка");
                    AppJournal.Write("Contract", "Put contract to 1c error :" + result, true);
                }
            }
            else
            {
                MessagesService.Show("РЕЗУЛЬТАТ ЗАНЕСЕНИЯ В 1С", "Не все поля заполненны");
            }
        }
示例#12
0
    public void RaisePostBackEvent(string eventArgument)
    {
        var action = eventArgument.Split('|')[0];
        var argument = eventArgument.Split('|')[1];

        var service = new MessagesService();

        switch(action)
        {
            case "viewmessage":
                service.UpdateEmailsStatus(new int[] {Convert.ToInt32(argument)}, MailStatusType.Read);
                Response.Redirect("ViewMessage.aspx?id=" + argument);
                break;

            case "markallasread":
                var allIDs = service.GetAllEmailIDs(MailStatusType.New, FolderID).ToArray();
                service.UpdateEmailsStatus(allIDs, MailStatusType.Read);
                Response.Redirect(Request.Url.AbsoluteUri);
                break;

            case "markselectedasread":
                if(string.IsNullOrEmpty(argument)) return;

                var idsToBeMarkedAsRead = Array.ConvertAll(argument.Split(','), s => int.Parse(s));
                service.UpdateEmailsStatus(idsToBeMarkedAsRead, MailStatusType.Read);
                Response.Redirect(Request.Url.AbsoluteUri);
                break;

            case "markselectedasunread":
                if(string.IsNullOrEmpty(argument)) return;

                var idsToBeMarkedAsUnread = Array.ConvertAll(argument.Split(','), s => int.Parse(s));
                service.UpdateEmailsStatus(idsToBeMarkedAsUnread, MailStatusType.New);
                Response.Redirect(Request.Url.AbsoluteUri);
                break;

            case "movetodeleted":
                if(string.IsNullOrEmpty(argument)) return;

                var idsToMoveToDeleted = Array.ConvertAll(argument.Split(','), s => int.Parse(s));
                service.MoveEmails(idsToMoveToDeleted, 4);
                Response.Redirect(Request.Url.AbsoluteUri);
                break;

            case "deletedrafts":
                if(string.IsNullOrEmpty(argument)) return;

                var draftsToPermanentlyDelete = Array.ConvertAll(argument.Split(','), s => int.Parse(s));
                service.PermanentlyDeleteEmails(draftsToPermanentlyDelete);
                Response.Redirect(Request.Url.AbsoluteUri);
                break;

            case "deleteemails":
                if(string.IsNullOrEmpty(argument)) return;

                var idsToPermanentlyDelete = Array.ConvertAll(argument.Split(','), s => int.Parse(s));
                service.PermanentlyDeleteEmails(idsToPermanentlyDelete);
                Response.Redirect(Request.Url.AbsoluteUri);
                break;

            case "emptytrash":
                var allTrashIDs = service.GetAllEmailIDs(FolderID).ToArray();
                service.PermanentlyDeleteEmails(allTrashIDs);
                Response.Redirect(Request.Url.AbsoluteUri);
                break;

            case "movetofolder":
                var moveToFolderID = Convert.ToInt32(argument);
                var idsToMove = Array.ConvertAll(eventArgument.Split('|')[2].Split(','), s => int.Parse(s));

                service.MoveEmails(idsToMove, moveToFolderID);
                Response.Redirect(Request.Url.AbsoluteUri);
                break;

            case "movetonewfolder":
                var newFolderDescription = argument;
                var idsToMoveToNewFolder = Array.ConvertAll(eventArgument.Split('|')[2].Split(','), s => int.Parse(s));

                // First, create the new folder.
                var newFolderID = service.CreatePersonalEmailFolder(newFolderDescription);

                // Next, move the selected emails to the new folder.
                service.MoveEmails(idsToMoveToNewFolder, newFolderID);

                Response.Redirect(Request.Url.AbsoluteUri);
                break;
        }
    }
示例#13
0
    public void RenderEmails()
    {
        var html = new StringBuilder();


        // Get the data
        var service = new MessagesService();
        var emails = service.GetEmails(FolderID);

        var settings = ExigoApiContext.CreateODataContext().Customers
            .Where(c => c.CustomerID == Identity.Current.CustomerID)
            .Select(c => c);
        
        // Assemble the emails list
        html.AppendFormat("<table class='table messageslist'>");

        if(emails.Count == 0)
        {
            html.AppendFormat("<tr><td colspan='5'><p class='nomessages'>(no messages to display)</p></td></tr>");
        }
        else
        {
            foreach(var email in emails)
            {
                var statusCssClass = (email.MailStatusTypeID == 0) ? "status-unread" : "status-read";
                var hasAttachmentsDisplay = (email.HasAttachment) ? "<i class='icon-file'></i>" : string.Empty;

                var formattedDate = email.MailDate.ToString("MMM d");
                if(email.MailDate.Date == DateTime.Now.Date) formattedDate = email.MailDate.ToString("h:mm tt");

                html.AppendFormat(@"
                        <tr class='{0}' data-id='{1}'>
                            <td class='options'>
                                <input type='checkbox' /></td>
                            <td class='details'>{2}</td>
                            <td class='from clickable'>
                                {3}</td>
                            <td class='summary clickable'>{4}</td>
                            <td class='received clickable'>{5}</td>
                        </tr>",
                    statusCssClass,
                    email.MailID,
                    hasAttachmentsDisplay,
                    email.MailFrom,
                    email.Subject,
                    formattedDate
                );
            }
        }

        html.AppendFormat("</table>");


        // Render the emails
        var writer = new HtmlTextWriter(Response.Output);
        writer.Write(html.ToString());
    }
示例#14
0
        private void CRUDRate(int type, string range = null)
        {
            AppJournal.Write("Contract", "Open rate - " + (type == 1 ? "New" : SelectedRate.id.ToString()), true);

            string  transactionTxt, procentTxt;
            decimal transaction = 0, procent = 0;
            bool    error = false;

            if (SelectedRatesList != null)
            {
                if (type != 3)
                {
                    /*if(range == null) {
                     *  transactionTxt = await MessagesService.GetInput("Ввод диапазона сумм", "Введите суммы от и до через тире (-):");
                     *  procentTxt = await MessagesService.GetInput("Ввод процента", "Введите процент для заданного диапазона:");
                     * } else {*/
                    transactionTxt = range.Substring(2, range.LastIndexOf(" ") - range.IndexOf(" ")).Replace(" ", "").Replace(".", "");
                    procentTxt     = Percent.ToString();
                    //}

                    if (!string.IsNullOrEmpty(transactionTxt) && !string.IsNullOrEmpty(procentTxt))
                    {
                        try {
                            transactionTxt = transactionTxt.Replace("-", "-");
                            procentTxt     = procentTxt.Replace(".", ",");
                            transaction    = Convert.ToDecimal(string.IsNullOrEmpty(range) ? transactionTxt.Substring(0, transactionTxt.IndexOf("-")) : transactionTxt);
                            procent        = Convert.ToDecimal(procentTxt);
                        } catch (Exception) { error = true; }
                    }
                    else
                    {
                        error = true;
                    }
                }

                switch (type)
                {
                case 1:     // Create
                    if (!error)
                    {
                        // Fill model
                        var rate = new RateEF()
                        {
                            transaction = transaction,
                            percent     = procent,
                            rateslistid = SelectedRatesList.id
                        };

                        // Save changes
                        if (DataBaseClient.CreateRate(rate) == 0)
                        {
                            MessagesService.Show("Создание тарифных данных", "Во время создания произошла ошибка");
                        }
                        else
                        {
                            AppJournal.Write("Contract", "Create rate error", true);
                        }
                    }
                    break;

                case 2:     // Update
                    if (!error && SelectedRate != null)
                    {
                        if (!DataBaseClient.UpdateRate(SelectedRate.id, transaction, procent))
                        {
                            MessagesService.Show("Обновление тарифных данных", "Во время обновления произошла ошибка");
                        }
                    }
                    else
                    {
                        MessagesService.Show("Обновление тарифных данных", "При обновлении произошла ошибка.\nВозможно не были выбраны данные");
                        AppJournal.Write("Contract", "Update rate error", true);
                    }
                    break;

                case 3:     // Delete
                    if (SelectedRate != null)
                    {
                        if (!DataBaseClient.DeleteRate(SelectedRate.id))
                        {
                            MessagesService.Show("Удаление тарифных данных", "Во время удаления произошла ошибка");
                            AppJournal.Write("Contract", "Delete rate error", true);
                        }
                    }
                    else
                    {
                        MessagesService.Show("Удаление тарифных данных", "Не выбраны тарифные данные");
                    }
                    break;
                }

                UpdateRateView();
            }
            else
            {
                MessagesService.Show("Тарифные данные", "Не выбрана тарифная сетка");
            }
        }
    public void RaisePostBackEvent(string eventArgument)
    {
        var action = eventArgument.Split('|')[0];
        var argument = eventArgument.Split('|')[1];

        var service = new MessagesService();

        switch(action)
        {
            case "reply":
                break;

            case "forward":
                break;

            case "markselectedasunread":
                if(string.IsNullOrEmpty(argument)) return;

                var idsToBeMarkedAsUnread = Array.ConvertAll(argument.Split(','), s => int.Parse(s));
                service.UpdateEmailsStatus(idsToBeMarkedAsUnread, MailStatusType.New);
                Response.Redirect("Messages.aspx");
                break;

            case "movetodeleted":
                if(string.IsNullOrEmpty(argument)) return;

                var idsToMoveToDeleted = Array.ConvertAll(argument.Split(','), s => int.Parse(s));
                service.MoveEmails(idsToMoveToDeleted, 4);
                Response.Redirect("Messages.aspx");
                break;

            case "movetofolder":
                var moveToFolderID = Convert.ToInt32(argument);
                var idsToMove = Array.ConvertAll(eventArgument.Split('|')[2].Split(','), s => int.Parse(s));

                service.MoveEmails(idsToMove, moveToFolderID);
                Response.Redirect("Messages.aspx");
                break;

            case "movetonewfolder":
                var newFolderDescription = argument;
                var idsToMoveToNewFolder = Array.ConvertAll(eventArgument.Split('|')[2].Split(','), s => int.Parse(s));

                // First, create the new folder.
                var newFolderID = service.CreatePersonalEmailFolder(newFolderDescription);

                // Next, move the selected emails to the new folder.
                service.MoveEmails(idsToMoveToNewFolder, newFolderID);

                Response.Redirect("Messages.aspx");
                break;
        }
    }
 public MessagesController(
     MessagesService messagesService)
 {
     this.messagesService = messagesService;
 }
 public MessagesServiceTests()
 {
     messagesService = new MessagesService(CreateContext());
 }
        private void TechSpecReport(int type)
        {
            // Check for info for choosed data
            var lotExtended = DataBaseClient.ReadLotsExtended(StartDate, EndDate);

            if (lotExtended != null && lotExtended.Count > 0)
            {
                // Variables info
                string path         = "";
                string templateFile = "";
                string templatePath = @"\\192.168.11.5\Archive\Templates\ETS\TechSpecReport.xlsx";

                // Get path to save template
                try {
                    path = Service.GetDirectory().FullName;
                } catch { path = ""; }

                if (!string.IsNullOrEmpty(path))
                {
                    // Get template file
                    templateFile = path + "\\Отчет по тех. спец. с " + StartDate.ToShortDateString() + " по " + EndDate.ToShortDateString() + ".xlsx";

                    if (Service.CopyFile(templatePath, templateFile, true))
                    {
                        // Fill template file with info
                        try {
                            // Convert EF to BO
                            var techSpecReports = DataBaseClient.ReadTechSpecReport(1, StartDate, EndDate, new List <int>()
                            {
                                4
                            }, type == 1 ? new List <int>()
                            {
                                2
                            } : new List <int>()
                            {
                                2, 3, 4
                            });

                            if (techSpecReports != null && techSpecReports.Count > 1)
                            {
                                // Create report document
                                TechSpecReportService.CreateDocument(techSpecReports, templateFile);

                                // Open folder with file
                                FolderExplorer.OpenFolder(path + "\\");
                            }
                            else
                            {
                                MessagesService.Show("Оповещение", "На эти даты записей нет");
                            }
                        } catch (Exception ex) { MessagesService.Show("Оповещение", "Произошла ошибка во время формирования отчета\n" + ex.ToString()); }
                    }
                    else
                    {
                        MessagesService.Show("Оповещение", "Произошла ошибка во время копирования шаблона");
                    }
                }
            }
            else
            {
                MessagesService.Show("Оповещение", "Нет данных для формирования");
            }
        }
示例#19
0
 public void Init()
 {
     this.messagesService = new MessagesService(
         this.dbContext, new MockedMessagesRepository(this.dbContext));
 }
示例#20
0
        public IHttpActionResult GetGameMessages(int gameId)
        {
            List <WallThreadViewModel> MessageThreads = MessagesService.GetGameMessages(gameId);

            return(Ok(MessageThreads));
        }
示例#21
0
 public void ThenMessagesServiceCreateMessageShouldNotHaveBeenCalled()
 => MessagesService.Verify(service => service.CreateMessage(It.IsAny <Message>()), Times.Never);
示例#22
0
 public void ThenMessagesServiceCreateMessageShouldHaveBeenCalled()
 => MessagesService.Verify(service => service.CreateMessage(It.IsAny <Message>()),
                           Times.Exactly(_timesCreateMessage));
示例#23
0
        private void FormateTransfer()
        {
            // Check for auctions in selected date
            var procuratories = DataBaseClient.ReadProcuratories(FormateDate);

            var supplierOrders = DataBaseClient.ReadSupplierOrders().Where(s => s.auction.siteid == 4 && s.auction.date == FormateDate && s.supplierid != 3 && s.supplierid != 27 && s.supplierid != 354 && s.supplierid != 384 && s.supplierid != 385).ToList();

            if (procuratories != null && procuratories.Count() > 0)
            {
                // Set folder for files
                try
                {
                    path = Service.GetDirectory().FullName;
                }
                catch { path = ""; }

                if (!string.IsNullOrEmpty(path))
                {
                    for (var iBroker = 1; iBroker <= 4; iBroker++)
                    {
                        // Get template & copy them
                        if (supplierOrders.Where(s => s.contract.brokerid == iBroker).Count() > 0)
                        {
                            templateFile = path + "\\" + "Перевод в КЦ по ТОО " + (iBroker == 1 ? "'Альта и К'" : iBroker == 2 ? "'Корунд-777'" : iBroker == 3 ? "'Альтаир-Нур'" : "'Ак Алтын Ко'") + " для даты аукциона " + FormateDate.ToShortDateString() + ".docx";

                            if (Service.CopyFile(templatePath + "MoneyTransfer.docx", templateFile, true))
                            {
                                // Convert EF to BO
                                List <MoneyTransferList> moneyTransferList = new List <MoneyTransferList>();

                                var supplierJournal = DataBaseClient.ReadSuppliersJournals();
                                List <ClearingCountingEF> clearingCountingLst = new List <ClearingCountingEF>();

                                foreach (var item in supplierOrders.Where(s => s.contract.brokerid == iBroker))
                                {
                                    foreach (var subItem in procuratories.Where(p => p.supplierid == item.supplierid && p.auctionid == item.auctionid))
                                    {
                                        try
                                        {
                                            moneyTransferList.Add(new MoneyTransferList()
                                            {
                                                fromCompany = iBroker == 1 ? "altaik" : iBroker == 2 ? "korund" : iBroker == 3 ? "alta008" : "akaltko",
                                                toCompany   = supplierJournal.FirstOrDefault(s => s.supplierid == item.supplierid && s.brokerid == iBroker).code,
                                                lotNumber   = subItem.lot.number,
                                                sum         = (subItem.lot.sum / 100 * Convert.ToDecimal(0.1)).ToString()
                                            });

                                            //
                                            clearingCountingLst.Add(new ClearingCountingEF()
                                            {
                                                brokerid       = iBroker,
                                                fromsupplierid = iBroker == 1 ? 354 : iBroker == 2 ? 354 : iBroker == 3 ? 27 : 384,
                                                tosupplierid   = (int)subItem.supplierid,
                                                lotid          = (int)subItem.lotid,
                                                transaction    = subItem.lot.sum / 100 * Convert.ToDecimal(0.1),
                                                createdate     = DateTime.Now,
                                                statusid       = 9
                                            });

                                            // Put records in base

                                            /*if(DataBaseClient.CreateClearingCounting(clearingCounting) == 0) {
                                             *  MessagesService.Show("Заявление об изменении денежных средств", "Произошла ошибка при занесении данных в базу");
                                             *  AppJournal.Write("MoneyTransfer", "Fault when create record in base", true);
                                             * }*/
                                        }
                                        catch { }
                                    }
                                }

                                // Save into data base
                                foreach (var item in clearingCountingLst)
                                {
                                    // Check for exist
                                    var searchItem = DataBaseClient.ReadClearingCounting(item.brokerid, item.fromsupplierid, item.tosupplierid, item.lotid);

                                    // Save if not or remove old and create new record
                                    if (searchItem != null)
                                    { // Update
                                        DataBaseClient.UpdateClearingCounting(item.id, item.transaction);
                                    }
                                    else
                                    { // New
                                        if (DataBaseClient.CreateClearingCounting(item) == 0)
                                        {
                                            MessagesService.Show("Заявление об изменении денежных средств", "Произошла ошибка при занесении данных в базу");
                                            AppJournal.Write("MoneyTransfer", "Fault when create record in base", true);
                                        }
                                    }
                                }
                                //

                                // Formate file
                                MoneyTransferService.CreateDocument(templateFile, (iBroker == 1 ? "ТОО 'Альта и К'" : iBroker == 2 ? "ТОО 'Корунд-777'" : iBroker == 3 ? "ТОО 'Альтаир-Нур'" : "ТОО 'Ак Алтын Ко'"), moneyTransferList);
                            }
                        }
                    }
                }

                // Open folder
                FolderExplorer.OpenFolder(path + "\\");

                /*// Get templates & copy to auction directory
                 * var docMoneyTransferReq = GetDocumentRequisites("Заявление в КЦ №" + Auction.number.Replace("/", "_") + " (c " + Order.Auction.SupplierOrders[0].BrokerCode + " на " + Order.Auction.SupplierOrders[0].Code + ").docx", DocumentTypeEnum.MoneyTransfer);
                 * var moneyTransferTemplateFile = archiveManager.GetTemplate(docMoneyTransferReq, DocumentTemplateEnum.MoneyTransfer);
                 *
                 * // Get transaction sum
                 * var transactionSum = Order.Auction.Lots[0].Sum / 100 * Convert.ToDecimal(0.1);
                 *
                 * // Formate money transfer document & open folder with new document
                 * if(MoneyTransferService.CreateDocument(Order, moneyTransferTemplateFile, transactionSum)) {
                 *  OpenFolder();
                 *
                 *  // Put records in base
                 *  ClearingCountingEF clearingCounting = new ClearingCountingEF() {
                 *      brokerid = (int)SelectedSupplierOrder.contract.brokerid,
                 *      fromsupplierid = DataBaseClient.ReadSupplier(SelectedSupplierOrder.contract.broker.companyId).id,
                 *      tosupplierid = (int)SelectedSupplierOrder.supplierid,
                 *      lotid = SelectedLot.id,
                 *      transaction = transactionSum,
                 *      createdate = DateTime.Now,
                 *      statusid = 9
                 *  };
                 *
                 *  if(DataBaseClient.CreateClearingCounting(clearingCounting) == 0) {
                 *      MessagesService.Show("Заявление об изменении денежных средств", "Произошла ошибка при занесении данных в базу");
                 *      AppJournal.Write("MoneyTransfer", "Fault when create record in base", true);
                 *  }
                 * } else MessagesService.Show("Заявление об изменении денежных средств", "Произошла ошибка при формировании заявления");*/
                //
            }
            else
            {
                MessagesService.Show("Оповещение", "На эту дату нет аукционов или не созданы поручения");
            }
        }
 public MessagesServiceTests()
 {
     _messageSender = new Mock <INotificationService>();
     _service       = new MessagesService(_messageSender.Object);
 }
示例#25
0
        private void CreateBackMoneyTransfer()
        {
            // Log service
            AppJournal.Write("BackMoneyTransfer", "Create back money transfer documents", true);

            // Check for selected transaction
            if (SelectedClearingCount != null && SelectedClearingCount.statusid != 10)
            {
                // Get templates & copy to auction directory
                var fromCount = DataBaseClient.ReadSuppliersJournals(SelectedClearingCount.tosupplierid, SelectedClearingCount.brokerid);
                var toCount   = DataBaseClient.ReadSuppliersJournals(SelectedClearingCount.fromsupplierid, SelectedClearingCount.brokerid);

                DocumentRequisite docMoneyTransferReq = new DocumentRequisite()
                {
                    fileName = "Заявление на возврат из КЦ №" + SelectedClearingCount.lot.auction.number.Replace("/", "_") + " (c " + fromCount[0].code + " на " + toCount[0].code + ").docx",
                    market   = MarketPlaceEnum.ETS,
                    date     = SelectedClearingCount.lot.auction.date,
                    number   = SelectedClearingCount.lot.auction.number
                };

                var moneyTransferTemplateFile = archiveManager.GetTemplate(docMoneyTransferReq, DocumentTemplateEnum.MoneyTransfer);

                // Fill order with needed data
                Order order = new Order();
                order.Auction = new Auction();
                order.Auction.SupplierOrders = new System.Collections.ObjectModel.ObservableCollection <SupplierOrder>();

                order.Auction.SupplierOrders.Add(new SupplierOrder()
                {
                    BrokerName = SelectedClearingCount.broker.name,
                    BrokerCode = fromCount[0].code,
                    Code       = toCount[0].code
                });

                order.Auction.Lots = new System.Collections.ObjectModel.ObservableCollection <Lot>();

                order.Auction.Lots.Add(new Lot()
                {
                    Number = SelectedClearingCount.lot.number
                });

                // Formate money transfer document & open folder with new document
                if (MoneyTransferService.CreateDocument(order, moneyTransferTemplateFile, SelectedClearingCount.transaction))
                {
                    FolderExplorer.OpenAuctionFolder(MarketPlaceEnum.ETS, SelectedClearingCount.lot.auction.date.ToShortDateString(), SelectedClearingCount.lot.auction.number);

                    // Put records in base
                    ClearingCountingEF clearingCounting = new ClearingCountingEF()
                    {
                        brokerid       = SelectedClearingCount.brokerid,
                        fromsupplierid = fromCount[0].supplierid,
                        tosupplierid   = toCount[0].supplierid,
                        lotid          = SelectedClearingCount.lotid,
                        transaction    = SelectedClearingCount.transaction,
                        createdate     = DateTime.Now,
                        statusid       = 10
                    };

                    if (DataBaseClient.CreateClearingCounting(clearingCounting) == 0)
                    {
                        MessagesService.Show("Заявление об изменении денежных средств", "Произошла ошибка при занесении данных в базу");
                        AppJournal.Write("MoneyTransfer", "Fault when create record in base", true);
                    }
                    else
                    {
                        DataBaseClient.UpdateClearingCountStatus(toCount[0].supplierid, fromCount[0].supplierid, SelectedClearingCount.lotid);
                    }

                    Apply(0);
                }
                else
                {
                    MessagesService.Show("Заявление об изменении денежных средств", "Произошла ошибка при формировании заявления");
                }
            }
            else
            {
                MessagesService.Show("Заявление о возврате денежных средств", "Не выбрана транзакция или статус ОПЛАЧЕНО.");
                AppJournal.Write("BackMoneyTransfer", "Fault because not selected transaction or status payed.", true);
            }
        }
示例#26
0
        private async void CRUDRatesList(int type)
        {
            AppJournal.Write("Contract", "Open rates list - " + (type == 1 ? "New" : SelectedRatesList.name), true);

            string market     = "";
            int    marketType = 0;

            if (type != 3)
            {
                market = await MessagesService.GetInput("Выберите биржу", "ЕТС - 1 / УТБ - 2 / КазЭТС - 3 (Введите цифру):");

                if (!string.IsNullOrEmpty(market))
                {
                    try {
                        marketType = Convert.ToInt32(market);
                    } catch (Exception) { }

                    if (marketType == 1)
                    {
                        marketType = 4;
                        market     = "ETS";
                    }
                    else if (marketType == 2)
                    {
                        marketType = 1;
                        market     = "Астана";
                    }
                    else if (marketType == 3)
                    {
                        marketType = 5;
                        market     = "КазЭТС";
                    }
                    else
                    {
                        marketType = 0;
                    }
                }
            }

            switch (type)
            {
            case 1:     // Create
                if (marketType != 0)
                {
                    // Fill model
                    var ratesList = new RatesListEF()
                    {
                        contractid = Contract.id,
                        name       = market,
                        siteid     = marketType
                    };

                    // Save changes
                    if (DataBaseClient.CreateRatesList(ratesList) == 0)
                    {
                        MessagesService.Show("Создание тарифной сетки", "Во время создания произошла ошибка");
                        AppJournal.Write("Contract", "Create rates list error", true);
                    }
                }
                break;

            case 2:     // Update
                if (SelectedRatesList != null && marketType != 0)
                {
                    // Get new market
                    if (DataBaseClient.UpdateRatesList(SelectedRatesList.id, market, marketType))
                    {
                        MessagesService.Show("Обновление тарифной сетки", "Обновление прошло успешно");
                    }
                    else
                    {
                        MessagesService.Show("Обновление тарифной сетки", "Во время обновления произошла ошибка");
                        AppJournal.Write("Contract", "Update rates list error", true);
                    }
                }
                else
                {
                    MessagesService.Show("Удаление тарифной сетки", "Не выбрана тарифная сетка");
                }
                break;

            case 3:     // Delete
                if (SelectedRatesList != null)
                {
                    if (DataBaseClient.DeleteRatesList(SelectedRatesList.id))
                    {
                        MessagesService.Show("Удаление тарифной сетки", "Удаление прошло успешно");
                    }
                    else
                    {
                        MessagesService.Show("Удаление тарифной сетки", "Во время удаления произошла ошибка");
                        AppJournal.Write("Contract", "Delete rates list error", true);
                    }
                }
                else
                {
                    MessagesService.Show("Удаление тарифной сетки", "Не выбрана тарифная сетка");
                }
                break;
            }

            UpdateRatesListView();
        }
 public MessagesController(MessagesService service)
 {
     messages = service;
 }
 public MessagesController(IWorkerContext context)
 {
     _context        = context;
     messagesService = new MessagesService(context);
 }
 public PrivateMessagesViewModel()
 {
     _messagesService = new MessagesService(App.CookieContainer, null);
     Messages         = new ObservableCollection <PrivateMessage>();
 }
 public ChannelMessageCommand(MessagesService messagesService)
 {
     _messagesService = messagesService;
 }
示例#31
0
 public MessagesFacade()
 {
     _messagesService = new MessagesService();
     _luisService     = new LuisService();
     _packagesService = new PackagesService();
 }
示例#32
0
 public void ThenMessagesRepositoryCreatePostShouldHaveBeenCalled()
 => MessagesService.Verify(repository => repository.CreateMessage(It.IsAny <Message>()), Times.Never);
示例#33
0
 public MessagesController(MessagesService messagesService)
 {
     //dependency injection
     this.messagesService = messagesService;
 }
        private void Print(int mode)
        {
            // Check for selected and for count
            if (SelectedListServ != null && SelectedListServ.envelopcount > 1)
            {
                // Get path to save template
                try
                {
                    path = Service.GetDirectory().FullName;
                }
                catch { path = ""; }

                if (!string.IsNullOrEmpty(path))
                {
                    // Get template file
                    templateFile = path + (mode == 1 ? "\\Конверты №" : mode == 2 ? "\\Уведомления №" : "\\Почтовый реестр №") + SelectedListServ.number + ".xlsx";

                    if (Service.CopyFile(templatePath + (mode == 1 ? "Envelop.xlsx" : mode == 2 ? "Notification.xlsx" : "Registral.xlsx"), templateFile, true))
                    {
                        // Convert info
                        List <PostRegister> postRegister = new List <PostRegister>();

                        foreach (var item in EnvelopsList)
                        {
                            postRegister.Add(new PostRegister()
                            {
                                name    = item.company == null ? "" : item.company,
                                index   = item.index == null ? "" : item.index,
                                address = item.address == null ? "" : item.address,
                                phones  = item.phones == null ? "" : item.phones,
                                code    = item.code == null ? "" : item.code
                            });
                        }

                        var brokerItem = DataBaseClient.ReadBrokers().FirstOrDefault(b => b.id == SelectedListServ.brokerid);

                        if (brokerItem != null)
                        {
                            Broker broker = new Broker();

                            broker.Name    = SelectedListServ.broker == null ? "" : SelectedListServ.broker;
                            broker.Index   = brokerItem.company.postcode == null ? "" : brokerItem.company.postcode;
                            broker.Address = brokerItem.company.addressactual == null ? "" : brokerItem.company.addressactual;
                            broker.Phones  = brokerItem.company.telephone == null ? "" : brokerItem.company.telephone;

                            // Formate document
                            try
                            {
                                PostRegisterService.CreateDocument(postRegister, templateFile, mode, broker);
                                FolderExplorer.OpenFolder(path + "\\");
                            }
                            catch (Exception) { MessagesService.Show("Оповещение", "во время формирования произошла ошибка"); }
                        }
                        else
                        {
                            MessagesService.Show("ОШИБКА", "Не найдены данные брокера");
                        }
                    }
                    else
                    {
                        MessagesService.Show("Оповещение", "Произошла ошибка во время копирования файла");
                    }
                }
            }
            else
            {
                MessagesService.Show("Оповещение", "Не выбран конверт или он пуст");
            }
        }
        public ActionResult MessagesDetail(string id)
        {
            Messages result = MessagesService.instance().Single(new Guid(id));

            return(View(result));
        }
示例#36
0
    public void RenderMessagesTile()
    {
        // Get the unread messages count
        var service = new MessagesService();
        var unreadMailCount = service.GetUnreadMailCount();
        var unreadMailCountDisplay = (unreadMailCount > 99) ? "99+" : unreadMailCount.ToString();


        var html = new StringBuilder();

        if(unreadMailCount > 0)
        {
            html.AppendFormat("<div class='tile tile-icon-highlighted size-1x1 theme-magenta tile-animated'>");
            html.AppendFormat("<h2 class='animated'>{0}<img style='max-height:48px;' src='Assets/Images/icnEnvelope.png' /></h2>", unreadMailCountDisplay);
            html.AppendFormat("<h4>{0}</h4>", Resources.Dashboard.NewMessages);
            html.AppendFormat("</div>");
        }
        else
        {
            html.AppendFormat("<div class='tile tile-icon size-1x1 theme-aqua2'>");
            html.AppendFormat("<img style='max-height:48px;' src='Assets/Images/icnEnvelope.png' />");
            html.AppendFormat("<h4>{0}</h4>", Resources.Dashboard.Messages);
            html.AppendFormat("</div>");
        }


        var writer = new HtmlTextWriter(Response.Output);
        writer.Write(html.ToString());
    }