private void stampare(object objStampanteAbbinata) { bool procediPure = false; int quante = stampaSoloSelezionate ? totaleFotoSelezionate : totoleFotoGallery; int numFotPag = paramStampaProvini.numeroRighe * paramStampaProvini.numeroColonne; int numPag = numFotPag > 0 ? (int)Math.Ceiling((decimal)quante / numFotPag) : 1; StringBuilder msg = new StringBuilder(); dialogProvider.ShowConfirmation(msg.AppendFormat("Confermi la stampa di {0} foto ?\n e N° {1} fogli di Provini?", quante, numPag).ToString(), "Richiesta conferma", (confermato) => { procediPure = confermato; }); if (procediPure) { // Salvo la configurazioneLast-Used con i margini di stampa salvaLastUsedMargini(paramStampaProvini.margini); StampanteAbbinata stampanteAbbinata = (StampanteAbbinata)objStampanteAbbinata; paramStampaProvini.formatoCarta = stampanteAbbinata.FormatoCarta; paramStampaProvini.nomeStampante = stampanteAbbinata.StampanteInstallata.NomeStampante; stampaProviniDialog.DialogResult = true; stampaProviniDialog.Hide(); } }
/// <summary> /// Quando viene disegnato il menu contestuale per la prima volta, /// devo fare una operazione che da XAML non si riesce. /// Ovvero devo creare le voci di menu nel menu "padre" rispetto al sottomenu che si riesce a creare /// nello xaml. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> void onMenuItemStampePieneUpdated(object sender, DataTransferEventArgs args) { MenuItem menuItemStampePiene = (MenuItem)sender; MenuItem menuItemSingolaFoto = (MenuItem)menuItemStampePiene.Parent; SelettoreAzioneRapidaViewModel vm = (SelettoreAzioneRapidaViewModel)menuItemStampePiene.DataContext; if (vm == null) { // Questa cosa non ha senso, perché il VM dovrebbe essere sempre valorizzato #if DEBUG if (System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debugger.Break(); } #endif vm = azioniRapideViewModel; } if (vm == null) { _giornale.Warn("data context vuoto per menu contestuale. Come mai ?"); } else { if (menuItemStampePiene.HasItems) { int conta = 0; foreach (var item in menuItemStampePiene.Items) { // Creo una nuova voce di menu MenuItem newItem = new MenuItem(); newItem.DataContext = vm; StampanteAbbinata cartaStampabile = (StampanteAbbinata)item; // bindo il comando di stampa newItem.Command = vm.stampaRapidaCommand; newItem.CommandParameter = cartaStampabile; newItem.Header = cartaStampabile.ToString(); Uri uri = new Uri("/Resources/Printer-16x16.ico", UriKind.Relative); newItem.Icon = new System.Windows.Controls.Image { Source = new BitmapImage(uri), ToolTip = "Stampa immediata a formato pieno" }; // Inserisco l'elemento appena creato, nel menu superiore. ((MenuItem)menuItemStampePiene.Parent).Items.Insert(conta++, newItem); } // Ora che ho aggiunto tutte le voci al menu superiore, rimuovo il sottomenu che risulterebbe un doppione. menuItemSingolaFoto.Items.Remove(menuItemStampePiene); } } }
private void stampare(object objStampanteAbbinata) { StampanteAbbinata stampanteAbbinata = (StampanteAbbinata)objStampanteAbbinata; formatoCarta = stampanteAbbinata.FormatoCarta; nomeStampante = stampanteAbbinata.StampanteInstallata.NomeStampante; _selezionaStampanteDialog.DialogResult = true; _selezionaStampanteDialog.Hide(); }
private ParamStampaFoto creaParamStampaFoto(StampanteAbbinata stampanteAbbinata, bool autoZoomNoBordiBianchi) { ParamStampaFoto p = venditoreSrv.creaParamStampaFoto(); p.nomeStampante = stampanteAbbinata.StampanteInstallata.NomeStampante; p.formatoCarta = stampanteAbbinata.FormatoCarta; p.autoZoomNoBordiBianchi = autoZoomNoBordiBianchi; // TODO per ora il nome della Porta a cui è collegata la stampante non lo uso. Non so cosa farci. return(p); }
private void stampaRapida(StampanteAbbinata stampanteAbbinata, bool autoZoomNoBordiBianchi, String intestazione) { // Un parametro della configurazione mi dice il totale foto oltre il quale chiedere conferma if (targetMode == TargetMode.Selezionate && Configurazione.UserConfigLumen.sogliaNumFotoConfermaInStampaRapida > 0 && countSelezionate >= Configurazione.UserConfigLumen.sogliaNumFotoConfermaInStampaRapida) { bool procediPure = false; procediPure = chiedereConfermaPerProseguire("Sei sicuro di voler stampare\nle " + countSelezionate + " fotografie selezionate?", "Stampa rapida foto senza carrello"); if (!procediPure) { return; } } using (IVenditoreSrv venditoreSpampaRapida = LumenApplication.Instance.creaServizio <IVenditoreSrv>()) { venditoreSpampaRapida.start(); venditoreSpampaRapida.creareNuovoCarrello(); venditoreSpampaRapida.carrello.intestazione = intestazione; var listaFoto = getListaFotoTarget(); var param = creaParamStampaFoto(stampanteAbbinata, autoZoomNoBordiBianchi); venditoreSpampaRapida.aggiungereStampe(listaFoto, param); string msgErrore = venditoreSpampaRapida.vendereCarrello(); bool esitoOk = (msgErrore == null); if (esitoOk) { // Spengo le foto che ormai sono andate deselezionaFoto(); } else { dialogProvider.ShowError("Stampa diretta non riuscita.", "Errore", null); } venditoreSpampaRapida.stop(); } }
/// <summary> /// Devo mandare in stampa le foto selezionate /// Nel parametro mi arriva l'oggetto StampanteAbbinata che mi da tutte le indicazioni /// per la stampa: il formato carta e la stampante /// </summary> private void stampare(StampanteAbbinata stampanteAbbinata) { // Se ho selezionato più di una foto, e lavoro in stampa diretta, allora chiedo conferma bool procediPure = true; if (countSelezionate >= 1 && Configurazione.UserConfigLumen.modoVendita == ModoVendita.StampaDiretta) { procediPure = chiedereConfermaPerProseguire("Confermi la stampa di " + countSelezionate + " foto ?"); } if (procediPure) { if (Configurazione.UserConfigLumen.modoVendita == ModoVendita.StampaDiretta) { using (IVenditoreSrv venditoreStampaDiretta = LumenApplication.Instance.creaServizio <IVenditoreSrv>()) { venditoreStampaDiretta.creareNuovoCarrello(); venditoreStampaDiretta.carrello.intestazione = VenditoreSrvImpl.INTESTAZIONE_STAMPA_RAPIDA; venditoreStampaDiretta.aggiungereStampe(getListaFotoTarget(), creaParamStampaFoto(stampanteAbbinata)); string msgErrore = venditoreStampaDiretta.vendereCarrello(); bool esitoOk = (msgErrore == null); if (esitoOk) { dialogProvider.ShowMessage("Carrello venduto Correttamente", "Avviso"); } else { dialogProvider.ShowError("Errore inserimento carrello nella cassa", "Errore", null); } } } else { venditoreSrv.aggiungereStampe(getListaFotoTarget(), creaParamStampaFoto(stampanteAbbinata)); } deselezionaFoto(); } }
void stampaFotoTessera(StampanteAbbinata stampanteAbbinata) { // Le foto-tessera le stampo una alla volta. Non è molto probabile la stampa multipla if (targetMode != TargetMode.Singola) { return; } using (IVenditoreSrv venditoreFtessera = LumenApplication.Instance.creaServizio <IVenditoreSrv>()) { venditoreFtessera.start(); venditoreFtessera.creareNuovoCarrello(); venditoreFtessera.carrello.intestazione = VenditoreSrvImpl.INTESTAZIONE_STAMPA_FOTOTESSERA; var listaFoto = getListaFotoTarget(); var param = new ParamStampaTessera { nomeStampante = stampanteAbbinata.StampanteInstallata.NomeStampante, formatoCarta = stampanteAbbinata.FormatoCarta, numCopie = 1 }; venditoreFtessera.aggiungereStampe(listaFoto, param); string msgErrore = venditoreFtessera.vendereCarrello(); bool esitoOk = (msgErrore == null); if (esitoOk) { // Spengo le foto che ormai sono andate deselezionaFoto(); } else { dialogProvider.ShowError("Stampa foto tessera non riuscita.", "Errore", null); } venditoreFtessera.stop(); } }
/// <summary> /// Creo i parametri di stampa, mixando un pò di informazioni prese /// dalla configurazione, dallo stato dell'applicazione, e dalla scelta dell'utente. /// </summary> /// <param name="stampanteAbbinata"></param> /// <returns></returns> private ParamStampaFoto creaParamStampaFoto(StampanteAbbinata stampanteAbbinata) { return(creaParamStampaFoto(stampanteAbbinata, true)); }
private void stampaRapida(StampanteAbbinata stampanteAbbinata, bool autoZoomNoBordiBianchi) { stampaRapida(stampanteAbbinata, autoZoomNoBordiBianchi, VenditoreSrvImpl.INTESTAZIONE_STAMPA_RAPIDA); }