Ejemplo n.º 1
0
        /// <summary>
        /// Crea o actualiza una obra en la base de datos
        /// </summary>
        /// <param name="_obra"></param>
        /// <returns></returns>
        public static Boolean mergeOrCreate(Obra _obra)
        {
            recso2011DBEntities gestor = claseIntercambio.getGestor();

            int con = (from e in gestor.Obras
                       where e.recnum == _obra.recnum
                       select e).Count();

            if (con > 0)
            { //actualizar
                Obra obra = (from e in gestor.Obras
                             where e.recnum == _obra.recnum
                             select e).First();

                obra.licenciaMunicipal = _obra.licenciaMunicipal;
                obra.denominacion      = _obra.denominacion;
                obra.localidad         = _obra.localidad;
                obra.provincia         = _obra.provincia;
                obra.codigoMilena      = _obra.codigoMilena;
                obra.finicioObra       = _obra.finicioObra;
                obra.ffinObra          = _obra.ffinObra;
            }
            else
            { //crear nuevo
                //añadir un nuevo codigo de milena por ser obra nueva
                _obra.codigoMilena = generarCodigoMilena();
                if (_obra.finicioObra == null)
                {
                    _obra.finicioObra = DateTime.Today.ToShortDateString();
                }

                //guardar la nueva obra
                gestor.AddToObras(_obra);
            }
            gestor.SaveChanges(System.Data.Objects.SaveOptions.AcceptAllChangesAfterSave);
            return(true);
        }