示例#1
0
    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;
        }
    }
示例#2
0
    public string GetErrorMessage(CommonNameActionStatus status)
    {
        switch (status)
        {
        case CommonNameActionStatus.Duplicate:
            return("Common Name already exists. Please enter a different one.");

        default:
            return("Error");
        }
    }
示例#3
0
    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;
        }
    }