Esempio n. 1
0
        /// <summary>
        /// Create a new record
        /// </summary>
        /// <param name="idProduct"></param>
        /// <param name="bodyObj"></param>
        /// <returns></returns>
        public Profiles NewRecord(int idProduct, dynamic bodyObj)
        {
            try
            {
                var p = new Profiles();

                p.IdProduct        = idProduct;
                p.Name             = bodyObj.Name;
                p.Description      = bodyObj.Description;
                p.PriceUSD         = null;
                p.Active           = true;
                p.TagName          = bodyObj.TagName;
                p.AnonDefault      = bodyObj.AnonDefault;
                p.UserDefault      = bodyObj.UserDefault;
                p.Paid             = bodyObj.Paid;
                p.MotivatorText    = null;
                p.ShortDescription = null;

                db.Profiles.Add(p);
                db.SaveChanges();

                return(p);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        public bool SaveNewNotification(NaranyaNotification data)
        {
            var Notification = new EntityFramework.NaranyaNotification
            {
                id_event        = data.id_event,
                ipn_url         = data.ipn_url,
                ipn_type        = data.ipn_type,
                verify_sign     = data.verify_sign,
                id_app          = data.id_app,
                id_customer     = data.id_customer,
                id_transaction  = data.id_transaction,
                amount          = data.amount,
                currency        = data.currency,
                id_subscription = data.id_subscription,
                status          = data.status,
                id_service      = data.id_service,
                created         = data.created,
                updated         = data.updated,
                fecha           = DateTime.Now
            };

            db.NaranyaNotification.Add(Notification);

            db.SaveChanges();

            return(true);
        }
Esempio n. 3
0
        public bool SetLog(string text, string desc)
        {
            db.EventsLogs.Add(new EntityFramework.EventsLogs {
                DateCreated = DateTime.Now, Text = text, Description = desc
            });
            db.SaveChanges();

            return(true);
        }
Esempio n. 4
0
        /// <summary>
        /// Create a new record
        /// </summary>
        /// <param name="idProduct"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public Dimensions NewRecord(int idProduct, dynamic data)
        {
            try
            {
                var d = new Dimensions();

                d.Description         = data.description;
                d.IdDimensionType     = data.idDimensionType;
                d.IdDimensionCategory = data.idDimensionCategory;
                d.Value       = data.value == -1 ? null : data.value;
                d.SwitchValue = data.switchValue == -1 ? null : Convert.ToBoolean(data.switchValue);
                d.Active      = data.active == -1 ? true : Convert.ToBoolean(data.active);
                d.TagName     = data.tagName;

                db.Dimensions.Add(d);
                db.SaveChanges();

                return(d);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Esempio n. 5
0
        // -------------------------------------------------- DEPRECATED --------------------------------------------------

        public Users GetUser(string UserCode, int idProduct)
        {
            var usuario = db.Users.FirstOrDefault(e => e.ExternalCode != "0" && e.ExternalCode != "" && e.ExternalCode != null && e.ExternalCode == UserCode && e.IdProduct == idProduct);


            //si el usuario no es encontrado y el codigo de usuario tiene un valor distinto a vacio o 0, osea, que tiene un ID... le crea un usuario.
            if (usuario == null && UserCode != String.Empty && UserCode != null && UserCode != "0")
            {
                usuario = new Users
                {
                    Active       = true,
                    ExternalCode = UserCode,
                    IdProduct    = idProduct
                };

                db.Users.Add(usuario);
                db.SaveChanges();
            }

            return(usuario);
        }
        /// <summary>
        /// Delete all UserDimensions related to ID Subscription
        /// </summary>
        /// <param name="idSubscription">Subscription identifier (ID)</param>
        /// <returns></returns>
        public bool DeleteUserDimensions(int idSubscription)
        {
            try
            {
                // Find userdimensions and try to delete them
                var userdimension = db.UsersDimensions.Where(e => e.IdSubscription == idSubscription);
                foreach (EntityFramework.UsersDimensions oUserDimension in userdimension)
                {
                    db.UsersDimensions.Remove(oUserDimension);
                }

                // Commit
                db.SaveChanges();

                return(true);
            } catch (Exception)
            {
                return(false);
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Will set or update all related to change one profile. Need to be gobernated by transaction
        /// in order to keep consistency. Whatever profile is free or premium, requires create subscription
        /// Subscription links profile with user
        /// </summary>
        /// <param name="idProfile">ID new profile to be setted</param>
        /// <param name="idUser">ID user (freemium)</param>
        /// <param name="idClient">ID user MASTER</param>
        /// <param name="idProduct">ID product</param>
        /// <returns></returns>
        public bool SetProfileUser(int idProfile, int idUser, int idClient, int idProduct)
        {
            try
            {
                // User exists
                if (idUser != 0)
                {
                    // Find for subscription
                    var subscription = GetUserCurrentSubscription(idUser);

                    // Will check if profile is the same or not
                    if (subscription.IdProfile == idProfile)
                    {
                        this.lastError = "El perfil enviado es el mismo al actual del usuario";
                        return(false);
                    }

                    // STEP A1: If it exists, will check for UserDimensions (trying to delete them)

                    var userDimensions = db.UsersDimensions.Where(e => e.IdSubscription == subscription.IdSubscription);
                    foreach (EntityFramework.UsersDimensions oUserDimension in userDimensions)
                    {
                        db.UsersDimensions.Remove(oUserDimension);
                    }

                    // STEP A2: Update user to new profile
                    subscription.IdProfile = idProfile;

                    // STEP A3: Recreate UserDimensions if new profile has consumible dimensions
                    // Get dimensions by profile
                    List <EntityFramework.Dimensions> dimensions = db.Dimensions.Where(e => e.ProfilesDimensions.Any(j => j.IdProfile == idProfile)).ToList();

                    if (dimensions.Count > 0)
                    {
                        foreach (var oDimension in dimensions)
                        {
                            // STEP A4: Check if dimension type is consumible
                            if (oDimension.IdDimensionType == (int)DimensionTypeEnum.CONSUMIBLE)
                            {
                                int idDimension = oDimension.IdDimension;

                                // Create new UserDimension
                                var userdimension = new EntityFramework.UsersDimensions();

                                userdimension.IdDimension    = idDimension;
                                userdimension.DateCreated    = DateTime.Now;
                                userdimension.DateLastUpdate = DateTime.Now;
                                userdimension.IdSubscription = subscription.IdSubscription;
                                userdimension.Active         = true;

                                // Find value between profile and dimension
                                var profileDimension = db.ProfilesDimensions.Where(e => e.IdProfile == idProfile && e.IdDimension == idDimension).FirstOrDefault();

                                // Set default value
                                userdimension.CurrentValue = profileDimension.Value;

                                db.UsersDimensions.Add(userdimension);
                            }
                        }
                    }

                    // Commit
                    db.SaveChanges();
                }
                else
                {
                    // If it doesn't exist, will set profile to user
                    using (EntityFramework.FriPriEntities context = new EntityFramework.FriPriEntities())
                    {
                        if (context.Database.Connection.State != ConnectionState.Open)
                        {
                            context.Database.Connection.Open();
                        }

                        using (var transaction = context.Database.BeginTransaction())
                        {
                            try
                            {
                                // Create user
                                EntityFramework.Users newClient = new Repository.EntityFramework.Users
                                {
                                    Active       = true,
                                    ExternalCode = idClient.ToString(), // ID user master
                                    IdProduct    = idProduct
                                };

                                context.Users.Add(newClient);
                                context.SaveChanges();


                                // Create subscription
                                EntityFramework.Subscriptions newSubscription = new Repository.EntityFramework.Subscriptions
                                {
                                    Active       = true,
                                    DateCreated  = DateTime.Now,
                                    ExternalCode = "",
                                    IdProfile    = idProfile,
                                    IdUser       = newClient.IdUser,
                                    IsCurrent    = true,
                                    RenewalDay   = DateTime.Now.Day,
                                    LastRenewal  = DateTime.Now
                                };

                                context.Subscriptions.Add(newSubscription);
                                context.SaveChanges();

                                // Get dimensions by profile
                                List <EntityFramework.Dimensions> dimensions = context.Dimensions.Where(e => e.ProfilesDimensions.Any(j => j.IdProfile == idProfile)).ToList();

                                if (dimensions.Count > 0)
                                {
                                    foreach (var oDimension in dimensions)
                                    {
                                        // STEP A4: Check if dimension type is consumible
                                        if (oDimension.IdDimensionType == (int)DimensionTypeEnum.CONSUMIBLE)
                                        {
                                            int idDimension = oDimension.IdDimension;

                                            // Create new UserDimension
                                            var userdimension = new EntityFramework.UsersDimensions();

                                            userdimension.IdDimension    = idDimension;
                                            userdimension.DateCreated    = DateTime.Now;
                                            userdimension.DateLastUpdate = DateTime.Now;
                                            userdimension.IdSubscription = newSubscription.IdSubscription;
                                            userdimension.Active         = true;

                                            // Find value between profile and dimension
                                            var profileDimension = context.ProfilesDimensions.Where(e => e.IdProfile == idProfile && e.IdDimension == idDimension).FirstOrDefault();

                                            // Set default value
                                            userdimension.CurrentValue = profileDimension.Value;

                                            context.UsersDimensions.Add(userdimension);
                                        }
                                    }

                                    context.SaveChanges();
                                    transaction.Commit();
                                }
                            } catch (Exception e)
                            {
                                transaction.Rollback();
                                this.lastError = e.Message;

                                return(false);
                            }
                            finally
                            {
                                if (context.Database.Connection.State == ConnectionState.Open)
                                {
                                    context.Database.Connection.Close();
                                }
                            }
                        }
                    } // using
                }     // end general if-else

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }