Example #1
0
        private void GetCurrentOrderData(int orderId, out List <FinalProductData> productData, out bool finished,
                                         out int assignmentCount, out int assignmentFinished)
        {
            List <WorkerAssignmentData> assignments      = Database.assignments.SelectAll().Where(x => x.orderId == orderId).ToList();
            List <MailMessage>          relevantMessages = null;

            if (messages.Any(x => x.Subject.EndsWith("Zamówienie nr " + orderId)))
            {
                relevantMessages = messages.Where(x => x.Subject.EndsWith("Zamówienie nr " + orderId)).ToList();
                productData      = new List <FinalProductData>();

                foreach (string address in relevantMessages.Select(x => x.From.Address).Distinct())
                {
                    MailMessage message = relevantMessages.Where(x => x.From.Address == address).Last();
                    productData.AddRange(ExcelManager.ReadExcelFromMessage(message));
                }

                assignmentCount    = assignments.Count;
                assignmentFinished = relevantMessages.GroupBy(x => x.From.Address).Count();
                finished           = assignments.Count == assignmentFinished;
            }
            else
            {
                assignmentCount    = assignments.Count;
                assignmentFinished = 0;
                productData        = new List <FinalProductData>();
                finished           = false;
            }
        }
        private void SendButton_Click(object sender, RoutedEventArgs e)
        {
            if (!Validate())
            {
                MessageBox.Show("Proszę o przypisanie pracownika do realizacji wszystkich części zamówienia!", "Nie przypisane elementy zamówienia");
            }
            else
            {
                Database.orders.InsertElement(data);

                string Body    = "W załączniku otrzymał Pan/Pani dokument excel, który musi zostać uzupełniony.";
                string Subject = "Zamówienie nr " + data.Number;


                foreach (WorkerAssignmentData assignment in assignments)
                {
                    if (assignment.orders.Count > 0)
                    {
                        Database.assignments.InsertElement(assignment);
                        SendAssignment(assignment);

                        string   fileName = assignment.worker.LastName + "_zamowienie.xls";
                        Workbook workbook = ExcelManager.CreateWorkbookFromAssignment(assignment);
                        workbook.Save(fileName);

                        MailSender  esender   = new MailSender();
                        MailMessage MyMessage = new MailMessage();
                        MyMessage.Attachments.Add(new MailAttachment(fileName));

                        esender.Send(assignment.worker.Email, Body, Subject, MyMessage.Attachments);
                    }
                }

                ShitHelper.Model.BasicAck(_tag, false);
                var step = new Process().Next(StepNames.OrderAccepted, DecisionType.Ok);
                ShitHelper.Publish(step.CurrentStep, new ProcessMessage
                {
                    Step = step.CurrentStep,
                });
                MessageBox.Show("Zamówienie zostało przekazane do dalszej realizacji.");
                GotoMainWindow();
            }
        }