protected bool CheckPreconditionsForced(DataAccess Source, DataAccess Dest) { DataTable S = Source.RUN_SELECT(table, "*", null, filter, null, false); DataTable D = Dest.RUN_SELECT(table, "*", null, null, null, false); int nmax = CfgFn.GetNoNullInt32(Dest.DO_READ_VALUE(table, null, "max(" + key + ")")) + 1; StringAppender myAppender = new StringAppender(stringtoappend, maxlen); Hashtable H = new Hashtable(); CQueryHelper QHC = new CQueryHelper(); foreach (DataRow Rs in S.Rows) { object newval = myAppender.translate(Rs[code].ToString()); DataRow[] found = D.Select(QHC.CmpEq(code, newval)); if (found.Length == 0) { H[Rs[key]] = nmax++; ToAdd[Rs[key]] = 1; continue; } MessageBox.Show("La tabella di destinazione " + table + " ha già una o più righe con " + code + " = " + newval.ToString(), "Errore"); return(false); } MyTR = new ManualTranslator(H); AddPrivateTranslator(code, myAppender); DefinesPreTranslator(traslcode, MyTR); return(true); }
public CopyContext Add(string translatorCode, translator TR) { if (IsDefined(translatorCode)) { MessageBox.Show("Errore: doppia definizione del translator di codice " + translatorCode, "Errore di progettazione"); } H[translatorCode] = TR; return(this); }
// Use this for initialization void Start() { characterVars = maincharacter.GetComponent <mainCharacterVars>(); friend1 = npc1.GetComponent <npcfriendship>(); daycount1 = npc1.GetComponent <npcGiveTask>(); friend2 = npc2.GetComponent <npcfriendship>(); daycount2 = npc2.GetComponent <npcGiveTask>(); friend3 = npc3.GetComponent <npcfriendship>(); daycount3 = npc3.GetComponent <npcGiveTask>(); friend4 = npc4.GetComponent <npcfriendship>(); daycount4 = npc4.GetComponent <npcGiveTask>(); translate = Translator.GetComponent <translator>(); }
/// <summary> /// Chiamato in sede di costruzione della classe per stabilire quali translators siano attivati da questo oggetto /// </summary> /// <param name="code"></param> /// <param name="T"></param> /// <returns></returns> public Copyer DefinesPreTranslator(string code, translator T) { if (L.Contains(code)) { MessageBox.Show("Errore: doppia definizione del translator di codice " + code, "Errore di progettazione"); } L.Add(code); PRETrlist[code] = T; return(this); }
public static float GetCost(int idOrder, translator translator) { var entity = new sovadb001Entities0(); var order = GetOrder(idOrder); float cost = 0; int i = 0; float t = 0; foreach (var ord in order.documentSpecializations) { t += (float)translator.prices.FirstOrDefault(r => r.IdSpecialization == ord.IdSpecialization).price1; i++; } cost = t / i; return(cost); }
public static void AddTranslator(int[] idSpec, int idUser) { var entity = new sovadb001Entities0(); translator nt = new translator(); nt.countOfComplitedOrders = 0; nt.IdUser = idUser; entity.translators.Add(nt); entity.SaveChanges(); double[] p = new double[idSpec.Length]; int x = 0; foreach (int i in idSpec) { price pr = GetSpecialization(i).prices.First(t => t.IdTranslator == entity.translators.First(q => q.IdUser == idUser).IdTranslator); specialization s = GetSpecialization(i); if (pr != null) { p[x] = (double)(pr.price1 / s.complexity); } else { p[x] = 0; } x++; } double sum = 0; for (int i = 0; i < p.Length; i++) { sum += p[i]; } sum /= p.Length; double sum1 = 0; for (int i = 0; i < p.Length; i++) { if (p[i] != 0) { p[i] -= sum; p[i] = Math.Abs(p[i]); sum1 += p[i]; } } entity.translators.First(q => q.IdUser == idUser).reputation = (int)sum1; entity.SaveChanges(); }
protected bool CheckPreconditions(DataAccess Source, DataAccess Dest, bool forced) { if (ClearDestAtStart) { MyTR = new IdentityTranslator(); AddPrivateTranslator(key, MyTR); //key is translated as MyTR - no matter of external requests DefinesPreTranslator(traslcode, MyTR); //defines external translator as requested return(true); } DataTable S = Source.RUN_SELECT(table, "*", null, filter, null, false); DataTable D = Dest.RUN_SELECT(table, "*", null, null, null, false); int nmax = CfgFn.GetNoNullInt32(Dest.DO_READ_VALUE(table, null, "max(" + key + ")")) + 1; Hashtable H = new Hashtable(); CQueryHelper QHC = new CQueryHelper(); foreach (DataRow Rs in S.Rows) { DataRow[] found = D.Select(QHC.CmpEq(code, Rs[code])); if (found.Length == 0) { H[Rs[key]] = nmax++; ToAdd[Rs[key]] = 1; continue; } if (forced) { MessageBox.Show("La tabella di destinazione " + table + " ha già una o più righe con " + code + " = " + Rs[code].ToString(), "Errore"); return(false); } if (found.Length == 1) { H[Rs[key]] = found[0][key]; continue; } MessageBox.Show("La tabella di destinazione " + table + " ha più righe con il campo " + code + " = " + Rs[code].ToString(), "Errore"); return(false); } MyTR = new ManualTranslator(H); AddPrivateTranslator(key, MyTR); //key is translated as MyTR - no matter of external requests DefinesPreTranslator(traslcode, MyTR); //defines external translator as requested return(true); }
public Copyer AddPrivateTranslator(string code, translator TR) { myContext.Add(code, TR); applied = false; return(this); }
/// <summary> /// Chiamato in sede di costruzione della classe per stabilire quali translators siano attivati da questo oggetto /// </summary> /// <param name="code"></param> /// <param name="T"></param> /// <returns></returns> public Copyer DefinesPostTranslator(string code, translator T) { L.Add(code); POSTTrlist[code] = T; return(this); }
public ActionResult Create(Work workToInsert) { try { work dalSubmission = new work { title = workToInsert.title, edition = workToInsert.edition }; // insert new author here var authorsFullName = workToInsert.author_name; var names = authorsFullName.Split(' '); string firstName = names[0]; string lastName = names[1]; if (!dbContext.authors.Any((n => n.first_name.Contains(firstName) || n.last_name.Contains(lastName) || n.first_name.StartsWith(firstName) || n.last_name.StartsWith(lastName)))) { author newAuthor = new author { first_name = firstName, last_name = lastName }; dbContext.authors.InsertOnSubmit(newAuthor); dbContext.SubmitChanges(); dalSubmission.author_id = newAuthor.author_id; // author id } // insert new language if (!dbContext.languages.Any(l => l.language_name.Contains(workToInsert.language))) { language newLang = new language { language_name = workToInsert.language }; dbContext.languages.InsertOnSubmit(newLang); dbContext.SubmitChanges(); dalSubmission.language_id = newLang.language_id; // language id } // insert new translator AND ORGANIZATION // REMEMBER TO INCLUDE ORGANIZATION ON CREATION VIEW! if (!dbContext.translators.Any(t => t.translator_name.Contains(workToInsert.translator_name) || t.translator_name.StartsWith(workToInsert.translator_name))) { if (!dbContext.organizations.Any(o => o.orginization_name.Contains(workToInsert.organization_name) || o.orginization_name.StartsWith(workToInsert.organization_name))) { string orgAbrev = string.Join(string.Empty, workToInsert.organization_name.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(s => s[0])); organization newOrg = new organization { orginization_name = workToInsert.organization_name, orginization_abrev = orgAbrev }; dbContext.organizations.InsertOnSubmit(newOrg); dbContext.SubmitChanges(); translator newTranslator = new translator { translator_name = workToInsert.translator_name, organization_id = newOrg.organization_id }; dbContext.translators.InsertOnSubmit(newTranslator); dbContext.SubmitChanges(); dalSubmission.translator_id = newTranslator.translator_id; // translator id } } // insert user who entered // TODO: get current user var currentUserIDbyEmail = (from u in dbContext.users where u.email.Contains(workToInsert.user_entry_email) select u.user_id).FirstOrDefault(); dalSubmission.user_entry_Id = currentUserIDbyEmail; // user id // insert new metadata stuff metadata newMetaData = new metadata { media_type = workToInsert.media_type, doi = workToInsert.doi, isbn = workToInsert.isbn }; dbContext.metadatas.InsertOnSubmit(newMetaData); dbContext.SubmitChanges(); dalSubmission.metadata_id = newMetaData.metadata_id; // metadata id // insert new record into works dbContext.works.InsertOnSubmit(dalSubmission); dbContext.SubmitChanges(); return(RedirectToAction("Index")); } catch { return(View()); } }
protected bool CheckPreconditions(DataAccess Source, DataAccess Dest, bool forced) { //if (ClearDestAtStart) { // MyTR = new IdentityTranslator(); // SetExternalCode("paridsor", "idsor"); // DefinesPreTranslator("idsor", MyTR); // DefinesPreTranslator("idsor1", MyTR); // DefinesPreTranslator("idsor2", MyTR); // DefinesPreTranslator("idsor3", MyTR); // DefinesPreTranslator("idsor01", MyTR); // DefinesPreTranslator("idsor02", MyTR); // DefinesPreTranslator("idsor03", MyTR); // DefinesPreTranslator("idsor04", MyTR); // DefinesPreTranslator("idsor05", MyTR); // return true; //} DataTable S = Source.RUN_SELECT("sorting", "*", null, null, null, false); DataTable Sk = Source.RUN_SELECT("sortingkind", "*", null, null, null, false); DataTable D = Dest.RUN_SELECT("sorting", "*", null, null, null, false); DataTable Dk = Dest.RUN_SELECT("sortingkind", "*", null, null, null, false); CQueryHelper QHC = new CQueryHelper(); int maxidsor = MetaData.MaxFromColumn(D, "idsor"); maxidsor = maxidsor + 1; foreach (DataRow Rs in S.Rows) { //proietta Rs[idsorkind] sul db di destinazione object idsork = Rs["idsorkind"]; if (Sk.Select(QHC.CmpEq("idsorkind", idsork)).Length == 0) { MessageBox.Show("Chiave esterna idsorkind ORFANA nella tabella sorting del dipartimento di origine", "Errore"); return(false); } } bool errors = false; Hashtable H = new Hashtable(); foreach (DataRow Rsk in Sk.Rows) { //il tipo class non va migrato se non rientra nell'elenco di elisabetta if (!MustTranslateCodeSorKind(Rsk["codesorkind"].ToString())) { continue; } string filter = QHC.CmpEq("codesorkind", Rsk["codesorkind"]); if (Dk.Select(filter).Length == 0) { continue; //sarà creata da zero ...>NO sarà saltato //MessageBox.Show("Non c'è coerenza per le strutture di tipo classificazione", "Errore di programmazione"); //return false; } object oldidsorkind = Rsk["idsorkind"]; object newidsorkind = Dk.Select(filter)[0]["idsorkind"]; DataRow[] RSS = S.Select(QHC.CmpEq("idsorkind", oldidsorkind), "nlevel"); //righe di origine DataRow[] RSD = D.Select(QHC.CmpEq("idsorkind", newidsorkind)); //righe di destinazione if (RSD.Length == 0) { //Si predispone a creare le righe foreach (DataRow Rs in RSS) { IDSorToCopy[Rs["idsor"].ToString()] = 1; H[Rs["idsor"]] = maxidsor++; } } else { //Crea il lookup foreach (DataRow Rs in RSS) { string f = QHC.AppAnd(QHC.CmpEq("idsorkind", newidsorkind), QHC.CmpEq("sortcode", Rs["sortcode"])); DataRow[] found = D.Select(f); if (found.Length == 0) { H[Rs["idsor"]] = maxidsor++; IDSorToCopy[Rs["idsor"].ToString()] = 1; /* Comment("Avviso: \r\n"+ * "La classificazione "+Rsk["codesorkind"].ToString()+ " nel dipartimento di destinazione "+ * " non ha la voce con codice "+Rs["sortcode"].ToString()+" quindi sarà creata.\r\n"+ * ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\r\n"); * //errors = true; */ continue; } if (found.Length == 1) { if (Rs["nlevel"].ToString() != found[0]["nlevel"].ToString()) { MessageBox.Show("La classificazione " + Rsk["codesorkind"].ToString() + " nel dipartimento di destinazione " + " con codice " + Rs["sortcode"].ToString() + " appartiene ad un livello diverso rispetto al dipartimento di origine.", "Errore"); errors = true; } H[Rs["idsor"]] = found[0]["idsor"]; continue; } MessageBox.Show("La classificazione " + Rsk["codesorkind"].ToString() + " nel dipartimento di destinazione " + " ha PIU' VOCI con codice " + Rs["sortcode"].ToString(), "Errore"); errors = true; } } } if (errors) { return(false); } MyTR = new ManualTranslator(H); SetExternalCode("paridsor", "idsor"); DefinesPreTranslator("idsor", MyTR); DefinesPreTranslator("idsor1", MyTR); DefinesPreTranslator("idsor2", MyTR); DefinesPreTranslator("idsor3", MyTR); DefinesPreTranslator("idsor01", MyTR); DefinesPreTranslator("idsor02", MyTR); DefinesPreTranslator("idsor03", MyTR); DefinesPreTranslator("idsor04", MyTR); DefinesPreTranslator("idsor05", MyTR); return(true); }