Ejemplo n.º 1
0
        public static object Post(UnionVm data, bool validateOnly)
        {
            if (data.UnionId > 0)
            {
                if (Utils.CheckPermission(3, 90, Utils.LoggedUser.Roles) < 1)
                {
                    return(Utils.ServiceResponse(PageCode, new ModelResponse(101), null));
                }
            }
            else
            {
                if (Utils.CheckPermission(2, 90, Utils.LoggedUser.Roles) < 1)
                {
                    return(Utils.ServiceResponse(PageCode, new ModelResponse(101), null));
                }
            }

            var mr = Mgr.Post(Utils.LoggedUser, ref data, Utils.UploadFolder, validateOnly);

            return(Utils.ServiceResponse(PageCode, mr));
        }
Ejemplo n.º 2
0
        public long Post(ref UnionVm vm, string userId)
        {
            using (var db = new LMISEntities())
                using (var transaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        var id = vm.UnionId;

                        if (id > 0) //Update
                        {
                            var tr = db.Unions
                                     .Where(r => r.IsDeleted == null && r.ID == id)
                                     .ToList().Single();

                            tr.Telephone    = vm.Telephone;
                            tr.Fax          = vm.Fax;
                            tr.Website      = vm.Website;
                            tr.Email        = vm.Email;
                            tr.Logo         = vm.Logo;
                            tr.UpdateUserID = userId;
                            tr.UpdateDate   = DateTime.UtcNow;

                            //Delete detail records
                            var dr1 = db.UnionDetails
                                      .Where(r => r.UnionID == id)
                                      .ToList();

                            db.UnionDetails.RemoveRange(dr1);

                            var dr2 = db.UnionProfessions
                                      .Where(r => r.UnionID == id)
                                      .ToList();

                            db.UnionProfessions.RemoveRange(dr2);

                            var dr3 = db.UnionCommitteeDetails
                                      .Where(r => r.UnionID == id)
                                      .ToList();

                            db.UnionCommitteeDetails.RemoveRange(dr3);

                            var dr4 = db.UnionCommittees
                                      .Where(r => r.UnionID == id)
                                      .ToList();

                            db.UnionCommittees.RemoveRange(dr4);
                        }
                        else        //Insert
                        {
                            var tr = new Union
                            {
                                Telephone  = vm.Telephone,
                                Fax        = vm.Fax,
                                Website    = vm.Website,
                                Email      = vm.Email,
                                Logo       = vm.Logo,
                                PostUserID = userId,
                                PostDate   = DateTime.UtcNow
                            };

                            db.Unions.Add(tr);
                            db.SaveChanges();

                            vm.UnionId = (long)tr.ID;
                        }

                        //Insert detail records
                        var ds1 = Utils.MultilingualDataSet(
                            new Dictionary <string, GlobalString>
                        {
                            { "c1", vm.Name },
                            { "c2", vm.Address }
                        });

                        foreach (var r in ds1)
                        {
                            db.UnionDetails.Add(new UnionDetail()
                            {
                                UnionID = vm.UnionId,
                                LangID  = r["c1"].L,
                                Name    = r["c1"].T,
                                Address = r["c2"].T
                            });
                        }

                        var sid = 0;

                        foreach (var p in vm.Professions)
                        {
                            sid++;

                            var ds2 = Utils.MultilingualDataSet(
                                new Dictionary <string, GlobalString>
                            {
                                { "c1", p }
                            });

                            foreach (var r in ds2)
                            {
                                db.UnionProfessions.Add(new UnionProfession()
                                {
                                    UnionID = vm.UnionId,
                                    ProfID  = sid,
                                    LangID  = r["c1"].L,
                                    Name    = r["c1"].T
                                });
                            }
                        }

                        sid = 0;

                        foreach (var c in vm.Committees)
                        {
                            sid++;

                            var dr = db.UnionCommittees.Add(new UnionCommittee()
                            {
                                UnionID = vm.UnionId,
                                ComID   = sid,
                                Gov     = c.Gov.id
                            });

                            var ds3 = Utils.MultilingualDataSet(
                                new Dictionary <string, GlobalString>
                            {
                                { "c1", c.Name }
                            });

                            foreach (var r in ds3)
                            {
                                dr.UnionCommitteeDetails.Add(new UnionCommitteeDetail()
                                {
                                    UnionID = dr.UnionID,
                                    ComID   = dr.ComID,
                                    LangID  = r["c1"].L,
                                    Name    = r["c1"].T
                                });
                            }
                        }

                        db.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        ExceptionDispatchInfo.Capture(ex).Throw();
                    }
                }

            return(vm.UnionId);
        }
Ejemplo n.º 3
0
        public ModelResponse Post(UserInfo user, ref UnionVm vm, string fileFolder, bool validateOnly)
        {
            try
            {
                //Authorization
                if (user == null)
                {
                    return(new ModelResponse(101));
                }
                if (string.IsNullOrWhiteSpace(user.UserId))
                {
                    return(new ModelResponse(101));
                }
                if (!user.IsApproved || user.IsIndividual || user.OrgContactId == null)
                {
                    return(new ModelResponse(101));
                }

                var isAdmin = DalFactory.Singleton.DataService.IsAdmin(user.UserId);
                if (!isAdmin)
                {
                    return(new ModelResponse(101));
                }

                //Validations
                if (vm.Professions == null)
                {
                    vm.Professions = new List <GlobalString>();
                }
                if (vm.Committees == null)
                {
                    vm.Committees = new List <UnionVm.UnionCommittee>();
                }
                if (vm.Professions.Count < 1 || vm.Committees.Count < 1 || vm.Name.IsNullOrWhiteSpace() || vm.Address.IsNullOrWhiteSpace() || vm.Professions.Any(p => p.IsNullOrWhiteSpace()) ||
                    vm.Committees.Any(c => c.Gov.id.IsNotASubCode() || c.Name.IsNullOrWhiteSpace()))
                {
                    return(new ModelResponse(1));
                }

                if (!validateOnly)
                {
                    //Verify File Path
                    if (fileFolder.HasNoValue())
                    {
                        return(new ModelResponse(102));
                    }
                    if (!vm.Logo.HasNoValue() && !File.Exists(Path.Combine(fileFolder, vm.Logo)))
                    {
                        return(new ModelResponse(102));
                    }

                    //Save to DB
                    Repo.Post(ref vm, user.UserId);
                }
            }
            catch (Exception ex)
            {
                return(new ModelResponse(ex));
            }

            return(new ModelResponse(0, vm.UnionId));
        }