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(); } }