protected void FormViewCommonName_ItemInserting(object sender, FormViewInsertEventArgs e) { TextBox txtCommonName = (TextBox)formViewCommonName.FindControl("txtCommonName"); TextBox txtScientificName = (TextBox)formViewCommonName.FindControl("txtScientificName"); CommonNameActionStatus status = Validate(txtCommonName.Text, txtScientificName.Text, actionType.insert); if (status == CommonNameActionStatus.Success) { User user = new UserBLL().GetUserByUserName((HttpContext.Current.User.Identity).Name); int groupID = new Group_UsersBLL().GetGroup_UsersByUserID(user.UserID)[0].GroupID; CommonName commonName = new CommonNameBLL().GetOrCreateCommonName(txtCommonName.Text, user); ScientificName scientificName = new ScientificNameBLL().GetScientificNameByScientificNameID(Convert.ToInt32(Page.RouteData.Values["scientificname_id"] as string)); OrganismType organismType = new OrganismTypeBLL().GetOrganismTypeByOrganismTypeID(2); Group group = new GroupBLL().GetGroupByGroupID(groupID); e.Values["CommonNameID"] = commonName.CommonNameID; e.Values["ScientificNameID"] = scientificName.ScientificNameID; e.Values["OrganismTypeID"] = organismType.OrganismTypeID; e.Values["GroupID"] = group.GroupID; e.Values["CreatedDate"] = DateTime.Now; e.Values["CreatorUserID"] = user.UserID; e.Values["EditedDate"] = DateTime.Now; e.Values["EditorUserID"] = user.UserID; } else { ltlMessage.Text = MessageFormatter.GetFormattedErrorMessage(GetErrorMessage(status)); e.Cancel = true; } }
public string GetErrorMessage(CommonNameActionStatus status) { switch (status) { case CommonNameActionStatus.Duplicate: return("Common Name already exists. Please enter a different one."); default: return("Error"); } }
protected void FormViewCommonName_ItemUpdating(object sender, FormViewUpdateEventArgs e) { TextBox txtCommonName = (TextBox)formViewCommonName.FindControl("txtCommonName"); TextBox txtScientificName = (TextBox)formViewCommonName.FindControl("txtScientificName"); CommonNameActionStatus status = Validate(txtCommonName.Text, txtScientificName.Text, actionType.update); if (status == CommonNameActionStatus.Success) { Type myType = (typeof(Organism)); PropertyInfo[] props = myType.GetProperties(); string[] arrNewValues = new string[e.NewValues.Keys.Count]; e.NewValues.Keys.CopyTo(arrNewValues, 0); Organism organism = new OrganismBLL().GetOrganismByOrganismID((int)e.Keys["OrganismId"]); User editor = new UserBLL().GetUserByUserName((HttpContext.Current.User.Identity).Name); CommonName commonName = new CommonNameBLL().GetOrCreateCommonName(txtCommonName.Text, editor); ScientificName scientificName = new ScientificNameBLL().GetScientificNameByScientificName(txtScientificName.Text); using (DatabaseContext _DatabaseContext = new DatabaseContext()) { if (commonName.CommonNameID == organism.CommonNameID) { CommonName dbContCommonName = _DatabaseContext.CommonNames.First(instance => instance.CommonNameID == organism.CommonNameID); dbContCommonName.CommonNameDesc = txtCommonName.Text; dbContCommonName.EditorUserID = editor.UserID; dbContCommonName.EditedDate = DateTime.Now; } else { Organism dbContOrganism = _DatabaseContext.Organisms.First(instance => instance.OrganismID == organism.OrganismID); dbContOrganism.CommonNameID = commonName.CommonNameID; dbContOrganism.CommonNameReference.EntityKey = commonName.EntityKey; } if (scientificName.ScientificNameID != organism.ScientificNameID) { Organism dbContOrganism = _DatabaseContext.Organisms.First(instance => instance.OrganismID == organism.OrganismID); dbContOrganism.ScientificNameID = scientificName.ScientificNameID; dbContOrganism.ScientificNameReference.EntityKey = scientificName.EntityKey; } _DatabaseContext.SaveChanges(); } foreach (var prop in props) { if (("System.String,System.Int32,System.Int,System.DateTime,System.Guid").IndexOf((prop.PropertyType).FullName) >= 0) // Si la propiedad es de tipo Guid, String, Int o DateTime { if (!arrNewValues.Contains(prop.Name)) { e.NewValues[prop.Name] = prop.GetValue(organism, null); } } } e.NewValues["ScientificNameID"] = scientificName.ScientificNameID.ToString(); e.NewValues["CommonNameID"] = commonName.CommonNameID.ToString(); e.NewValues["EditorUserID"] = editor.UserID.ToString(); e.NewValues["EditedDate"] = DateTime.Now; } else { ltlMessage.Text = MessageFormatter.GetFormattedErrorMessage(GetErrorMessage(status)); e.Cancel = true; } }