Ejemplo n.º 1
0
        public PartialViewResult AppApiEntityAttachPV(long appID)
        {
            ViewBag.SystemEntityID = new SelectList(uof_repos.repoEntitys.GetList(), "ID", "Title", 1);
            AppAPIEntity appAPIEntity = new AppAPIEntity();

            appAPIEntity.AppID = appID;
            return(PartialView("_ApiEntityAttach", appAPIEntity));
        }
Ejemplo n.º 2
0
 public ActionResult AppApiEntityDeattachPV([Bind(Include = "AppID,SystemEntityID")] AppAPIEntity appAPIEntity)
 {
     ResultInfo.Result res = ResultInfo.GetResultByID(1);
     if (ModelState.IsValid)
     {
         res = uof_repos.repoApps.DeAttachAppAPIEntity(appAPIEntity.AppID, appAPIEntity.SystemEntityID);
         return(Json(res));
     }
     return(Json(res));
 }
Ejemplo n.º 3
0
        public ResultInfo.Result AttachAppAPIEntity(long appID, long EntityID)
        {
            try
            {
                //validate if associate already exists
                List <AppAPIEntity> appAPIEntitys = db.AppAPIEntitys.Where(a => a.AppID == appID && a.SystemEntityID == EntityID).ToList();
                if (appAPIEntitys.Count > 0)
                {
                    return(Result.GenerateFailedResult());
                }

                //Add Link to Database
                AppAPIEntity lnk = new AppAPIEntity();
                lnk.AppID          = appID;
                lnk.SystemEntityID = EntityID;
                db.AppAPIEntitys.Add(lnk);
                db.SaveChanges();
                return(Result.GenerateOKResult("Saved"));
            }
            catch (Exception ex)
            {
                return(Result.GenerateFailedResult(ex.Message));
            }
        }
Ejemplo n.º 4
0
        public async Task <App> InstallOrUpdateStoreApp(Guid guid)
        {
            APIAppResponseModels.GetAppByGUID model = await GetAppByGUIDAsync(guid);

            //Verify Install or Update
            List <App> appsList = db.Apps.Where(a => a.GUID == guid).ToList();

            if (appsList.Count == 0)
            {//New App
                #region Install New App from Store

                #region Add App
                ////App
                App app = new App();
                app.GUID               = model.App.GUID;
                app.Key                = Guid.NewGuid();
                app.Title              = model.App.Title;
                app.Description        = model.App.Description;
                app.CreatedByID        = model.App.DevelopedBy.Id;
                app.CreateDate         = model.App.CreateDate;
                app.StatusID           = model.App.Status.Id;
                app.IsStoreApp         = true;
                app.DevelopedById      = model.App.DevelopedBy.Id;
                app.DevelopedByName    = model.App.DevelopedBy.FullName;
                app.DevelopedByCompany = model.App.DevelopedBy.Company;
                app.StoreAppLastUpdate = DateTime.Now;
                app.Version            = model.App.LatestVersion;
                db.Apps.Add(app);
                db.SaveChanges();
                #endregion


                #region Add APIEntities
                foreach (APISystemEntity api in model.App.AllowedEntities)
                {
                    AppAPIEntity appAPI = new AppAPIEntity();
                    appAPI.AppID          = app.ID;
                    appAPI.SystemEntityID = api.ID;
                    db.AppAPIEntitys.Add(appAPI);
                    db.SaveChanges();
                }
                #endregion

                #region Add MediaFiles
                foreach (APIAppMediaFile apiAppMediaFile in model.App.AppMediaFiles)
                {
                    AppMediaFile appMediaFile = new AppMediaFile();
                    appMediaFile.GUID  = apiAppMediaFile.GUID;
                    appMediaFile.Title = apiAppMediaFile.Title;
                    appMediaFile.AppID = app.ID;
                    db.AppMediaFiles.Add(appMediaFile);
                    db.SaveChanges();
                }

                #endregion

                #region Add EndpointTypes
                ////App EndpointTypes
                foreach (APIAppEndpointType apiAppEndType in model.App.AppEndpointTypes)
                {
                    AppEndpointType appEndpointType = new AppEndpointType();
                    appEndpointType.Code           = apiAppEndType.Code;
                    appEndpointType.GUID           = apiAppEndType.GUID;
                    appEndpointType.AppID          = app.ID;
                    appEndpointType.Title          = apiAppEndType.Title;
                    appEndpointType.Measurement    = apiAppEndType.Measurement;
                    appEndpointType.TypeCategoryID = apiAppEndType.TypeCategoryID;
                    appEndpointType.IconGUID       = apiAppEndType.IconGuid;
                    db.AppEndpointTypes.Add(appEndpointType);
                    db.SaveChanges();
                }
                #endregion

                #region Add ThingTypes
                ////App ThingTypes
                foreach (APIAppThingType apiAppThingType in model.App.AppThingTypes)
                {
                    AppThingCategory appThingType = new AppThingCategory();
                    appThingType.Code     = apiAppThingType.Code;
                    appThingType.GUID     = apiAppThingType.GUID;
                    appThingType.AppID    = app.ID;
                    appThingType.Title    = apiAppThingType.Title;
                    appThingType.IconGUID = apiAppThingType.IconGuid;

                    db.AppThingCategorys.Add(appThingType);
                    db.SaveChanges();
                }
                #endregion

                #region Add ThingTypeExtension
                ////App ThingTypes
                foreach (APIAppThingExtension apiAppThingExtension in model.App.AppThingExtensions)
                {
                    AppThingExtension appThingExtension = new AppThingExtension();
                    appThingExtension.Code  = apiAppThingExtension.Code;
                    appThingExtension.GUID  = apiAppThingExtension.GUID;
                    appThingExtension.AppID = app.ID;
                    appThingExtension.Title = apiAppThingExtension.Title;
                    appThingExtension.AppThingCategoryCode = apiAppThingExtension.ThingTypeCode;
                    appThingExtension.DataTypeID           = (int)apiAppThingExtension.DataType.ID;
                    appThingExtension.IsList = apiAppThingExtension.IsList;

                    db.AppThingExtensions.Add(appThingExtension);
                    db.SaveChanges();
                }
                #endregion

                #endregion
            }

            else
            {// Update App
                #region Update Existing App from Store

                #region Update App
                App app = appsList[0];
                app.GUID               = model.App.GUID;
                app.Key                = Guid.NewGuid();
                app.Title              = model.App.Title;
                app.Description        = model.App.Description;
                app.CreatedByID        = model.App.DevelopedBy.Id;
                app.CreateDate         = model.App.CreateDate;
                app.StatusID           = model.App.Status.Id;
                app.IsStoreApp         = true;
                app.DevelopedById      = model.App.DevelopedBy.Id;
                app.DevelopedByName    = model.App.DevelopedBy.FullName;
                app.DevelopedByCompany = model.App.DevelopedBy.Company;
                app.StoreAppLastUpdate = DateTime.Now;
                app.Version            = model.App.LatestVersion;
                db.SaveChanges();
                #endregion


                #region Add Missing APIEntities
                //Filter Only the missing App API Entities
                var toBeAddedAppAPIEntities_Query =
                    from storeAppEntities in model.App.AllowedEntities
                    where !(from localAppEntities in app.AppAPIEntitys
                            select localAppEntities.SystemEntityID)
                    .Contains(storeAppEntities.ID)
                    select storeAppEntities;
                //Add the Filtered AppAPIEntities to Local App
                foreach (APISystemEntity api in toBeAddedAppAPIEntities_Query)
                {
                    AppAPIEntity appAPI = new AppAPIEntity();
                    appAPI.AppID          = app.ID;
                    appAPI.SystemEntityID = api.ID;
                    db.AppAPIEntitys.Add(appAPI);
                    db.SaveChanges();
                }
                #endregion
                #region Delete Extra APIEntities
                //Filter Only the Extra App API Entities
                var toBeDeletedAppAPIEntities_Query =
                    from localAppEntities in app.AppAPIEntitys
                    where !(from storeAppEntities in model.App.AllowedEntities
                            select storeAppEntities.ID)
                    .Contains(localAppEntities.SystemEntityID)
                    select localAppEntities;
                //Add the Filtered AppAPIEntities to Local App
                foreach (AppAPIEntity api in toBeDeletedAppAPIEntities_Query)
                {
                    db.AppAPIEntitys.Remove(api);
                    //db.AppAPIEntitys.Where(a => a.AppID == api.AppID && a.SystemEntityID == api.SystemEntityID).ToList()[0];
                    db.SaveChanges();
                }
                #endregion

                #region Add Missing & Update MediaFiles
                List <AppMediaFile> localAppMediaFiles = db.AppMediaFiles.Where(et => et.App.GUID == app.GUID).ToList();
                foreach (APIAppMediaFile apiAppMediaFile in model.App.AppMediaFiles)
                {
                    if (localAppMediaFiles.Any(l => l.GUID == apiAppMediaFile.GUID))
                    {//Exist
                        AppMediaFile toBeUpdatedAppMediaFile = localAppMediaFiles.First(l => l.GUID == apiAppMediaFile.GUID);
                        toBeUpdatedAppMediaFile.Title = apiAppMediaFile.Title;
                        db.SaveChanges();
                    }
                    else
                    {//Not Exist
                        AppMediaFile toBeAddedAppMediaFile = new AppMediaFile();
                        toBeAddedAppMediaFile.GUID  = apiAppMediaFile.GUID;
                        toBeAddedAppMediaFile.AppID = app.ID;
                        toBeAddedAppMediaFile.Title = apiAppMediaFile.Title;
                        db.AppMediaFiles.Add(toBeAddedAppMediaFile);
                        db.SaveChanges();
                    }
                }

                #endregion

                #region Add Missing & Update EndpointTypes
                List <AppEndpointType> localAppEndpointTypes = db.AppEndpointTypes.Where(et => et.App.GUID == app.GUID).ToList();
                foreach (APIAppEndpointType apiAppEndpointType in model.App.AppEndpointTypes)
                {
                    if (localAppEndpointTypes.Any(l => l.GUID == apiAppEndpointType.GUID))
                    {//Exist
                        AppEndpointType toBeUpdatedAppEndpointType = localAppEndpointTypes.First(l => l.GUID == apiAppEndpointType.GUID);
                        toBeUpdatedAppEndpointType.Title          = apiAppEndpointType.Title;
                        toBeUpdatedAppEndpointType.Measurement    = apiAppEndpointType.Measurement;
                        toBeUpdatedAppEndpointType.TypeCategoryID = apiAppEndpointType.TypeCategoryID;
                        toBeUpdatedAppEndpointType.Code           = apiAppEndpointType.Code;
                        toBeUpdatedAppEndpointType.IconGUID       = apiAppEndpointType.IconGuid;
                        db.SaveChanges();
                    }
                    else
                    {//Not Exist
                        AppEndpointType toBeAddedAppEndpointType = new AppEndpointType();
                        toBeAddedAppEndpointType.GUID           = apiAppEndpointType.GUID;
                        toBeAddedAppEndpointType.AppID          = app.ID;
                        toBeAddedAppEndpointType.Title          = apiAppEndpointType.Title;
                        toBeAddedAppEndpointType.Measurement    = apiAppEndpointType.Measurement;
                        toBeAddedAppEndpointType.TypeCategoryID = apiAppEndpointType.TypeCategoryID;
                        toBeAddedAppEndpointType.Code           = apiAppEndpointType.Code;
                        toBeAddedAppEndpointType.IconGUID       = apiAppEndpointType.IconGuid;
                        db.AppEndpointTypes.Add(toBeAddedAppEndpointType);
                        db.SaveChanges();
                    }
                }

                #endregion

                #region Add Missing & Update ThingTypes
                List <AppThingCategory> localAppThingTypes = db.AppThingCategorys.Where(et => et.App.GUID == app.GUID).ToList();
                foreach (APIAppThingType apiAppThingType in model.App.AppThingTypes)
                {
                    if (localAppThingTypes.Any(l => l.GUID == apiAppThingType.GUID))
                    {//Exist
                        AppThingCategory toBeUpdatedAppThingType = localAppThingTypes.First(l => l.GUID == apiAppThingType.GUID);
                        toBeUpdatedAppThingType.Title    = apiAppThingType.Title;
                        toBeUpdatedAppThingType.Code     = apiAppThingType.Code;
                        toBeUpdatedAppThingType.IconGUID = apiAppThingType.IconGuid;
                        db.SaveChanges();
                    }
                    else
                    {//Not Exist
                        AppThingCategory toBeAddedAppThingType = new AppThingCategory();
                        toBeAddedAppThingType.GUID     = apiAppThingType.GUID;
                        toBeAddedAppThingType.AppID    = app.ID;
                        toBeAddedAppThingType.Title    = apiAppThingType.Title;
                        toBeAddedAppThingType.Code     = apiAppThingType.Code;
                        toBeAddedAppThingType.IconGUID = apiAppThingType.IconGuid;
                        db.AppThingCategorys.Add(toBeAddedAppThingType);
                        db.SaveChanges();
                    }
                }

                #endregion

                #region Add Missing & Update ThingExtensions
                List <AppThingExtension> localAppThingExtensions = db.AppThingExtensions.Where(et => et.App.GUID == app.GUID).ToList();
                foreach (APIAppThingExtension apiAppThingExtension in model.App.AppThingExtensions)
                {
                    if (localAppThingExtensions.Any(l => l.GUID == apiAppThingExtension.GUID))
                    {//Exist
                        AppThingExtension toBeUpdatedAppThingExtension = localAppThingExtensions.First(l => l.GUID == apiAppThingExtension.GUID);
                        toBeUpdatedAppThingExtension.Title = apiAppThingExtension.Title;
                        toBeUpdatedAppThingExtension.Code  = apiAppThingExtension.Code;
                        toBeUpdatedAppThingExtension.AppThingCategoryCode = apiAppThingExtension.ThingTypeCode;
                        toBeUpdatedAppThingExtension.DataTypeID           = (int)apiAppThingExtension.DataType.ID;
                        toBeUpdatedAppThingExtension.IsList = apiAppThingExtension.IsList;
                        db.SaveChanges();
                    }
                    else
                    {//Not Exist
                        AppThingExtension toBeAddedAppThingExtension = new AppThingExtension();
                        toBeAddedAppThingExtension.GUID  = apiAppThingExtension.GUID;
                        toBeAddedAppThingExtension.AppID = app.ID;
                        toBeAddedAppThingExtension.Title = apiAppThingExtension.Title;
                        toBeAddedAppThingExtension.Code  = apiAppThingExtension.Code;
                        toBeAddedAppThingExtension.AppThingCategoryCode = apiAppThingExtension.ThingTypeCode;
                        toBeAddedAppThingExtension.DataTypeID           = (int)apiAppThingExtension.DataType.ID;
                        toBeAddedAppThingExtension.IsList = apiAppThingExtension.IsList;
                        db.AppThingExtensions.Add(toBeAddedAppThingExtension);
                        db.SaveChanges();
                    }
                }

                #endregion


                #endregion
            }

            return(db.Apps.Where(a => a.GUID == model.App.GUID).ToList()[0]);
        }
Ejemplo n.º 5
0
        public PartialViewResult AppApiEntityDeattachPV(long appID, long systemEntityID)
        {
            AppAPIEntity appApiEntity = uof_repos.repoAppAPIEntitys.FindAppApiEntity(appID, systemEntityID);

            return(PartialView("_ApiEntityDeAttach", appApiEntity));
        }
Ejemplo n.º 6
0
 public ActionResult AppApiEntityAttachPV([Bind(Include = "AppID,SystemEntityID")] AppAPIEntity appAPIEntity)
 {
     ResultInfo.Result res = ResultInfo.GetResultByID(1);
     res = uof_repos.repoApps.AttachAppAPIEntity(appAPIEntity.AppID, appAPIEntity.SystemEntityID);
     return(Json(res));
 }